WEB开发网
开发学院手机开发Android 开发 利用Android自定义View实现转盘旋转的效果 阅读

利用Android自定义View实现转盘旋转的效果

 2010-05-31 14:27:00 来源:WEB开发网   
核心提示:Android的自定义View为开发者定义和使用个性化的View提供了很好的支持,想要使用自己定义的View,利用Android自定义View实现转盘旋转的效果,需要继承View类,并重写构造函数和onDraw()函数,onDraw函数在界面刷新时会被调用,通过线程控制可以实现动画的效果

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);

1 2 3 4  下一页

Tags:利用 Android 定义

编辑录入:coldstar [复制链接] [打 印]
赞助商链接