how to draw-Linie auf Bildansicht zusammen mit dem finger in android
In meiner app möchte ich zum zeichnen der Linie auf Bildansicht zusammen mit dem finger. Ich möchte die Ausgabe wie die folgende:
In diesem Bildschirm Fisch ist die Bildansicht und die roten Linien sind Linien zeichnen. Also folgte ich dem link unten, die app zu entwickeln
link. Das ist mein code:
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.addphoto);
btnAddPhoto=(Button)findViewById(R.id.add);
btnEdit=(Button)findViewById(R.id.edit);
imageView=(ImageView)findViewById(R.id.photo);
btnAddPhoto.setOnClickListener(this);
btnEdit.setOnClickListener(this);
imageView.setOnTouchListener(this);
}
@Override
public void onWindowFocusChanged(boolean hasFocus){
width=imageView.getWidth();
height=imageView.getHeight();
Log.e("heightttt",""+height);
Log.e("Widthhhh",""+width);
}
@Override
public void onClick(View v) {
//TODO Auto-generated method stub
if(v.equals(btnAddPhoto)){
popup.setVisibility(View.VISIBLE);
}
if(v.equals(btnEdit)){
bitmap = Bitmap.createBitmap((int) width, (int) height,Bitmap.Config.ARGB_8888);
canvas = new Canvas(bitmap);
paint = new Paint();
paint.setColor(Color.BLACK);
imageView.setImageBitmap(bitmap);
imageView.setOnTouchListener(this);
}
}
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
downx = event.getX();
downy = event.getY();
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
upx = event.getX();
upy = event.getY();
canvas.drawLine(downx, downy, upx, upy, paint);
imageView.invalidate();
break;
case MotionEvent.ACTION_CANCEL:
break;
default:
break;
}
return true;
}
In diesem Codierung immer wenn ich die Anwendung ausführen der nachstehend gezeigte Bildschirm wird geöffnet.
Dann mit dem add button Hinzugefügt habe ich das Foto aus meiner Galerie. Dies ist unter Bildschirm.
Dann immer, wenn ich Sie edittool-Taste die Fische Bildansicht gegangen und ich konnte zeichnen der geraden Linien nur, wie der folgende. Aber ich will zeichnen von Linien auf Bildansicht zusammen mit dem finger, wie der erste Bildschirm.
Bitte jemand mir helfen. Ich bin neu auf android. Vielen Dank für jede Hilfe.
InformationsquelleAutor rams | 2013-03-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie überschreiben die
onDraw
Methode Ihrer Ansicht.screen_drawing_room.xml
In Ihren Aktivitäten
onCreate()
DrawingView.java
Definieren Sie Ihre DrawingView. Die unten kann verwendet werden, für Freihand-Zeichnung. Ändern Sie die gleichen Linien zeichnen, Texte und Farbe( geschlossene Fläche). Für die fülle sehen, die akzeptierten Antworten in dem link android mit flood-fill-Algorithmus immer out of memory-Ausnahme.
Ihre Zeichnung Ansicht eingestellt ist. Studie der fingerpaint.java aus der Stichprobe auf die sdk unter den graphics Ordner.
Resultierenden sanpshot. Was Sie sehen, im hintergrund ist ein Bild. Auf der Vorder-ich zeichne hi. Ich habe zeichnen von Linien um die Ecke. Wenn Sie heraus, es ist rot.
Zeichnen von Linien, die Aussehen wie border. Festlegen der Strichstärke für die Farbe, was Sie wollen. Ebenso können Sie Linien zeichnen, wo Sie wollen, indem Sie ändern die x1,y1 und x2,y2-Koordinaten.
Edit:
Bild aus der Galerie
ja, Sie können das oben. in xml-Satz für den 1. linearlayout hinzufügen hintergrund betrachtet, ist die Ansicht von unten. Jetzt legen Sie Ihr ein weiteres linearlayout zu einem drawingview. Zeichnung Ansicht kann siert, um Linien zu zeichnen und freihändig
es Aussehen wird, so etwas wie Bild im hintergrund und oben drauf sehen Sie das zeichnen.
ist es möglich, gallary Bild zu linearen layout-Programm.
ja, es ist möglich.
InformationsquelleAutor Raghunandan