Bildansicht: onDraw-Methode zeichnet "hinter" dem Bild-hintergrund, nicht an der Spitze
Hier ist der code, der eine einfache Erweiterung von einer Bildansicht, die dem Benutzer erlauben, zu zeichnen mit dem finger.
public class MyImageView extends ImageView {
List<Point> points = new ArrayList<Point>();
Paint paint = new Paint();
public MyImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void onDraw(Canvas canvas) {
for (Point point : points) {
canvas.drawCircle(point.x, point.y, 5, paint);
//Log.d(TAG, "Painting: "+point);
}
super.onDraw(canvas);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
super.onTouchEvent(event);
Point point = new Point();
point.x = event.getX();
point.y = event.getY();
points.add(point);
invalidate();
Log.d("", "point: " + point);
return true;
}
class Point {
float x, y;
@Override
public String toString() {
return x + ", " + y;
}
}
}
Diese Arbeit ziemlich gut.
Nun möchte ich diesen code verwenden, um ziehen an der Spitze einer Bitmap.
Verwendet habe ich:
MyImageView ivPic = (MyImageView) dialog.findViewById(R.id.ivPic);
ivPic.setImageBitmap(picture);
Aber die Zeichnung gezogen wird "hinter" die Bitmap:
Haben Sie eine Idee, wie ich zeichnen kann, die auf der "Spitze" der Bitmap?
Haben Sie es geschafft, bekommen ein bitmap mit Ihren Zeichnungen und Ihrer bitmap dahinter ? mache ich das gleiche und kann nicht zum speichern der bitmap verändert
InformationsquelleAutor Waza_Be | 2012-06-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich die Reihenfolge geändert, in
onDraw
Methode, setzte ichsuper.onDraw(canvas);
am Anfang und ich denke, es funktioniert jetztInformationsquelleAutor chris
überschreiben und verwenden dispatchDraw Methode, die ich verwendet, es zu ziehen über Ansichten
was?
Du, mein Freund rettete meine Woche jetzt. Vielen Dank. Ich verwendet, die auf einer RecyclerView und es funktionierte perfekt. Aus der API - > 23 das ist eine Methode, onDrawForeground(Canvas canvas), macht genau das. Aber ich unterstütze API >= 16.
InformationsquelleAutor Mohammad Ersan
Ich beantworte meine eigene Frage, nur die Antwort gefunden:
Weiß nicht, ob dass das beste ist, die Praxis aber das funktioniert für mich...
InformationsquelleAutor Waza_Be