嗨朋友们
我正在创建一个应用程序,我放置了两个视图.第一个是imageview,另一个是我的客户视图.
我正在创建一个应用程序,我放置了两个视图.第一个是imageview,另一个是我的客户视图.
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一起放大.
我也应该能够正确绘制.
我尝试了画布缩放,但这是最糟糕的,因为在缩放后,我无法绘制到触摸点,也减少了绘制到屏幕,导致更多绘制到视图.
在widget上绘图也是非常冗长的任务导致性能降低.
请提供任何方式.
而且我正在使用api 10级.
EDIT1
好朋友.我有一个想法.
我必须在不同的缩放级别绘制路径.所以,如果我们可以计算不同缩放级别的路径比,它将解决我的问题. plz相应地提供帮助
EDIT2
如果我们能够扩展路径,那么它可以解决我的问题
EDIT3
我想如果我们在位图上绘制它而不是我可以实现我的目标,但我的问题是调整位图大小并在不同缩放级别上提供滚动到位图
解决方法
关于SO的类似问题:
> android pinch zoom
> Pinch zoom for custom view
可以在Honeycomb(API lvl 11)上完成,但之前没有正确完成.