作者:叶道雄
为了实现动画效果,使用drawBitmapMess方法对图像进行扭曲,使用定时器以100毫秒的频率按圆形轨迹扭曲图像。
扭曲的关键是生成verts数组。本例一开始会先生成verts数组的初始值:有一定水平和垂直间距的网点坐标。然后通过warp方法按一定的数学方法变化verts数组中的坐标。关键部分的代码如下:
定义基本变量:MyView是用于显示扭曲的图像的自定义view,angle是圆形轨迹的当前角度:
private static Bitmap bitmap;
private MyView myView;
private int angle = 0; // 圆形轨迹当前的角度
private Handler handler = new Handler()
{
public void handleMessage(Message msg)
{
switch (msg.what)
{
case 1:
Random random = new Random();
// 计算图形中心点坐标
int centerX = bitmap.getWidth() / 2;
int centerY = bitmap.getHeight() / 2;
double radian = Math.toRadians((d