嗨朋友们 我正在创建一个应用程序,其中我放了两个视图。首先是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进行相应的缩放。
我也应该能够正确绘制。
我尝试了画布缩放,但这是最糟糕的,因为在缩放后,我无法绘制到触摸点,也减少了绘制到屏幕,导致更多绘制到视图。
绘制小部件也是非常漫长的任务导致性能降低。 请提供任何方式。
我也在使用api 10级。
EDIT1
好朋友。我有一个想法。 我必须在不同的缩放级别上绘制路径。所以,如果我们可以计算不同缩放级别的路径比,它将解决我的问题。 PLZ相应提供帮助EDIT2
如果我们能够扩展路径,那么它可以解决我的问题
EDIT3
我认为如果我们在位图上绘制它而不是我可以实现我的目标,但我的问题是调整位图大小并在不同缩放级别上提供滚动到位图
答案 0 :(得分:1)
答案 1 :(得分:0)
我不认为普通视图可以缩放。您可以捕获触摸事件并相应地缩放视图窗口小部件。