如何在 Zoom able 和 scroll able imageview android 上绘制圆圈?
How Draw circle on Zoom able and scroll able imageview android?
我正在开发一个应用程序,要求如下。
用双指缩放和平移显示图像。
为此,我使用 here
中的 TouchImageview.java
它正在按预期工作。
在图像上绘制实心圆。
这也有效。
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);
}
}
问题:
现在的问题是,当在 canvas 上绘制实心圆后缩放 in/out 图像时,圆的位置不受管理。
例如 我在缩放图像后在位置 x=100,y=100 上绘制实心圆,圆应该在相同的位置。那么如何获得缩放图像上的相对x,y位置。
尝试使用这个 library。
在演示应用程序中显示了一个似乎可以满足您要求的功能。
库中的 CircleView class 可能会有用。
我正在开发一个应用程序,要求如下。
用双指缩放和平移显示图像。
为此,我使用 here
中的 TouchImageview.java它正在按预期工作。
在图像上绘制实心圆。
这也有效。
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);
}
}
问题:
现在的问题是,当在 canvas 上绘制实心圆后缩放 in/out 图像时,圆的位置不受管理。
例如 我在缩放图像后在位置 x=100,y=100 上绘制实心圆,圆应该在相同的位置。那么如何获得缩放图像上的相对x,y位置。
尝试使用这个 library。 在演示应用程序中显示了一个似乎可以满足您要求的功能。
库中的CircleView class 可能会有用。