Ich entwickle eine Anwendung und Anforderungen sind wie folgt.Wie Zeichnen Kreis auf Zoom in der Lage und Bildlauf Bildansicht Android?
Bild mit Pinch Zoom und Pan anzeigen.
Dazu verwende ich TouchImageview.java von here
Und es funktioniert wie erwartet.
Zeichnen Sie einen festen Kreis auf Bild.
Dies funktioniert auch.
public class NavigationViewZoom extends TouchImageView {
private Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
@Override
public void setImageBitmap(Bitmap bm) {
super.setImageBitmap(bm);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawCircle(300, 120, 50, mPaint);
}
public NavigationViewZoom(Context c) {
super(c);
init();
}
public NavigationViewZoom(Context c, AttributeSet attrs) {
super(c, attrs);
setDrawingCacheEnabled(true);
init();
}
private void init() {
mPaint.setColor(Color.RED);
mPaint.setStyle(Paint.Style.FILL);
}
}
Problem:
Das Problem ist jetzt, wenn Zoom in/out Bild nach auf Leinwand füllter Kreis zeichnen die Kreisposition verwaltet wird nicht.
Zum Beispiel Ich zeichne festen Kreis auf Position x = 100, y = 100 nach dem Zoomen des Bildes sollte der Kreis auf der gleichen Position sein. So erhalten Sie die relative x, y-Position auf gezoomtem Bild.
einige Code wird geschätzt .. !! –
Erstellen Sie eine Klasse, die 'BitmapDrawable' erweitert und ihre' draw'-Methode überschreibt – pskink
Ich kann einen Kreis zeichnen, aber beim Zoomen sollte sich der Bildkreis nicht bewegen. –