import android.content.Context;

import android.content.res.Resources;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.Canvas;

import android.graphics.Paint;

import android.util.AttributeSet;

import android.view.View;

public class bofang extends View

{

int COMPONENT_WIDTH;//控件的宽度

int COMPONENT_HEIGHT;//控件的高度

boolean initflag = false;//是不是已经初始化图片

Bitmap[] bmp;//用来寄存图片的数组

int currPicIndex = 0;//以后播放图片的ID

int[] bitmapId;//图片编号ID

boolean workFlag = true;//播放图片的线程标识位

public GGViewCX(Context father,AttributeSet as)//重写构造函数

{

//首先,要播放图片,就先要有图片,那就先给各个图片编号吧,这里的图片资源寄存在了res下的drawable文件夹下了

int[] bitmapId ={R.drawable.adv1, R.drawable.adv2, R.drawable.adv3};

//好了,图片的编号当初已经搞定了,接下来该干什么呢?对,应该将资源里的图片塞进Bitmap数组了,那么我们先来确定将要播放的图片的数量,即Bitmap数组的长度

bmp = new Bitmap[bitmapId.length];//这里不要直接将数值赋给bmp,因为我们可能会不定期地改换图片资源,这样我们就要修改多处代码,而我们这样根据

//图片的ID来确定图片的数量,以减少不必要的费事,下面开始初始化图片,我们将初始化图片放在一个函数里

initBitmap();//图片初始化终了

//图片初始化终了了,接下来我们要做的就是播放图片了,但是播放图片之前,我们有一个问题,就是怎样让图片实现循环播放?这里我们另开一个新的线程来准时变动

//要播放的图片的ID,以实现图片的循环播放,要实现循环播放图片的功能,我们需要覆写onDraw函数,首先,我们来新开一个线程

new Thread()

{

//重写run方法

public void run()

{

// TODO Auto-generated method stub

while(workflag)//一直执行这个循环(死循环)

{

currIndex = (currIndex+1)%bitmapId.length;//变动图片的ID

bofang.this.postInvalidate();//刷新屏幕,导致屏幕重绘

try

{

Thread.sleep(3000);//到此处暂停3秒钟,然后继续执行run函数,即实现每隔3秒钟刷新屏幕一次

}

catch (InterruptedException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}.start();

}

//初始化图片

public void initBitmap()

{

//获得资源图片

Resources res = this.getResources();

for(int i=0;i

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐