利用Android自定义View实现转盘旋转的效果
2010-05-31 14:27:00 来源:WEB开发网Android的自定义View为开发者定义和使用个性化的View提供了很好的支持,想要使用自己定义的View,需要继承View类,并重写构造函数和onDraw()函数。onDraw函数在界面刷新时会被调用,通过线程控制可以实现动画的效果,这里提供一个用自定义View实现的类似幸运转盘的例子。
一、自定义的转盘View
view plaincopy to clipboardprint?
package com.test.www;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.util.AttributeSet;
import android.view.View;
//自定义的转盘View
public class zhuanpanView extends View implements Runnable{
//界面需要的图片
private Bitmap panpic;
private Bitmap panhandpic;
//旋转矩阵
private Matrix panRotate=new Matrix();
//平移矩阵
private Matrix panhandTrans=new Matrix();
private int x=0;
private boolean ifRotate=false;
public zhuanpanView(Context context, AttributeSet attrs) {
super(context, attrs);
Resources r=context.getResources();
//设置指针平移矩阵为按向量(160,160-指针的高度)平移
panhandTrans.setTranslate(160, 160-76);
//生成图片
panpic=BitmapFactory.decodeStream(r.openRawResource(R.drawable.pan));
panhandpic=BitmapFactory.decodeStream(r.openRawResource(R.drawable.panhand));
//用线程来刷新界面
Thread thread=new Thread(this);
thread.start();
}
//重写View类的onDraw()函数
@Override
protected void onDraw(Canvas canvas) {
//设置转盘旋转矩阵为以(160,160)坐标为圆心,旋转X角度
panRotate.setRotate(x, 160, 160);
canvas.drawBitmap(panpic, panRotate, null);
更多精彩
赞助商链接