嗨,朋友们
我正在创建一个应用程序,我放了两个视图。第一个是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
我认为如果我们在位图上绘制它,我就无法达到我的目标,但我的问题是调整位图的大小,并在不同的缩放级别上提供对位图的滚动

最佳答案

类似的问题:
android pinch zoom
Pinch zoom for custom view
可在蜂窝(API 11级)上完成,但之前不正确。

07-28 02:32
查看更多