【发布时间】:2011-09-01 21:09:29
【问题描述】:
我的应用程序上有 9 个位图图像,呈 3x3 网格。所有这些都显示在屏幕上,并且根据用户与它们的交互方式(点击、双击、捏合、缩放、拖动),“动作”的图像需要执行不同的任务。
例如,如果我点击一张图片,它需要围绕它的垂直访问完全旋转,然后停止。
目前我正在使用 SurfaceView 和 onTouchEvent(..) 方法。我认为我可以制作动画的方法是将图像的宽度从 1 缩放到 -1 回到 1。我一直在尝试使用矩阵,但我无法让图像保持在它的中心位置。请帮助我解决此问题或提出替代/更好的方法来完成此问题。
我当前的代码只是一个测试。如果 b 为真,则该方法将尝试缩放位图。如果 b 为 false 则正常绘制位图。:
public void doDraw(Canvas canvas, boolean b)
{
Matrix m = new Matrix();
float scale = .5f;
m.setScale(scale, 1f);
m.postTranslate(mX,mY);
if(!b)
canvas.drawBitmap(mBitmap, mX, mY, null);
else
canvas.drawBitmap(mBitmap, m, null);
}
【问题讨论】:
标签: android canvas matrix image-manipulation scale