使用手指扩展在Canvas上缩放位图图像

时间:2012-03-14 13:38:22

标签: android

我正在使用

在画布上绘制位图
 canvas.drawBitmap(mBitmap, 0, 0, mPaint);

现在我想用两根手指在多点触控上缩放这个位图。我在 This page上用一根手指找到了缩放图像解决方案,但我想用两根手指(捏缩放)来做这件事。怎么做?

2 个答案:

答案 0 :(得分:0)

我建议使用andriod-multitouch-controller。这是一个令人惊叹的图书馆,可以让你捏缩放。它使多点触控更容易,并使其非常流畅。我在地图应用程序上使用它,效果很好。如果需要,还支持平移和多点触控旋转。

答案 1 :(得分:0)

Yoy必须在画布View上实现onTouchListener。

private String  mode= "Down";
public boolean onTouch(View v, MotionEvent event) {

    if (event.getAction() == MotionEvent.ACTION_DOWN) {
                mode="DOWN";
    }
    else if (event.getAction() == MotionEvent.ACTION_MOVE){

            if(mode.equals("DRAG"){
                 // it means both fingers are pressed and now you can zoom the canvas 
             }

    }
           else if (event.getAction() == MotionEvent.ACTION_POINTER_DOWN){

           mode="DRAG";

    }


    return false;
}

那么你可以在那里使用你的代码来缩放画布,现在你必须在矩阵中编写用于缩放位图的画布代码。