嗨朋友们,我正在创建一个应用程序,我在其中放置了两个视图。第一个是imageview,另一个是我的customeview。
我正在我的自定义视图上绘制图像。我的自定义视图代码如下
public class DrawView extends ImageView{
@SuppressWarnings("unused")
private static final String TAG = "DrawView";
Painter painter = new Painter();
PathStack pathStack;
private DrawApplication drawApplication;
public DrawView(Context context, AttributeSet attr) {
super(context,attr);
setFocusable(true);
setFocusableInTouchMode(true);
drawApplication=(DrawApplication)context.getApplicationContext();
pathStack=drawApplication.getPainter().getPathStack();
painter=drawApplication.getPainter();
setScaleType(ScaleType.MATRIX);
}
@Override
public void onDraw(Canvas canvas) {
float scaleFactor=drawApplication.getScaleFactor();
canvas.scale(scaleFactor, scaleFactor,(float)getWidth()/2,(float)getHeight()/2);
List<DrawingPath> currentStack=pathStack.getCurrentStack();
for (DrawingPath drawPath : currentStack) {
drawPath.draw(canvas, painter);
}
}
}
从代码中可以清楚地看到许多事情,例如在 drawapplication 上存储路径等。
现在我们决定为这个视图提供缩放和平移。并且我的绘图也应该与后面的 imageview 一起相应地缩放。
我也应该能够正确绘制。
我尝试了画布缩放,但这是最糟糕的,因为缩放后我无法绘制到触摸点,并且在屏幕上绘制的次数也更少,导致视图绘制得更多。
在小部件上绘图也是非常冗长的任务导致性能下降。请提供任何方式。
而且我正在使用 api 级别 10。
编辑1
好朋友。我有一个想法。我必须在不同的缩放级别上绘制路径。因此,如果我们可以计算不同缩放级别的路径比,它将解决我的问题。请提供相应的帮助
编辑2
如果我们能够扩展路径,那么它可以解决我的问题
编辑3
我想如果我们在位图上绘制它就可以实现我的目标,但我的问题是调整位图大小并提供不同缩放级别的位图滚动