您的位置:首页 > 移动开发 > Android开发

Android简单的广告控件View

2012-03-28 00:00 232 查看
在布局文件中引用此View控件即可。

public class GGView extends View {

int COMPONENT_WIDTH; // 该控件宽度

int COMPONENT_HEIGHT; // 该控件高度

boolean initflag = false; // 是否要获取控件的高度和宽度标志

static Bitmap[] bma; // 需要播放的图片的数组

Paint paint; // 画笔

int[] drawablesId; // 图片ID数组

int currIndex = 0; // 图片ID数组下标,根据此变量画图片

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

public GGView(Context father, AttributeSet as) { // 构造器

super(father, as);

drawablesId = new int[] { // 初始化图片ID数组

R.drawable.adv1, // 将需要播放的图片ID放于此处即可

R.drawable.adv2, R.drawable.adv3, };

bma = new Bitmap[drawablesId.length]; // 创建存放图片的数组

initBitmaps(); // 调用初始化图片函数,初始化图片数组

paint = new Paint(); // 创建画笔

paint.setFlags(Paint.ANTI_ALIAS_FLAG); // 消除锯齿

new Thread() { // 创建播放图片线程

public void run() {

while (workFlag) {

currIndex = (currIndex + 1) % drawablesId.length;// 改变ID数组下标值

GGView.this.postInvalidate(); // 绘制

try {

Thread.sleep(3000); // 休息三秒

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}.start(); // 启动线程

}

public void initBitmaps() { // 初始化图片函数

Resources res = this.getResources(); // 获取Resources对象

for (int i = 0; i < drawablesId.length; i++) {

bma[i] = BitmapFactory.decodeResource(res, drawablesId[i]);

}

}

public void onDraw(Canvas canvas) { // 绘制函数

if (!initflag) { // 第一次绘制时需要获取宽度和高度

COMPONENT_WIDTH = this.getWidth(); // 获取view的宽度

COMPONENT_HEIGHT = this.getHeight(); // 获取view的高度

initflag = true;

}

int picWidth = bma[currIndex].getWidth(); // 获取当前绘制图片的宽度

int picHeight = bma[currIndex].getHeight(); // 获取当前绘制图片的高度

int startX = (COMPONENT_WIDTH - picWidth) / 2; // 得到绘制图片的左上角X坐标

int startY = (COMPONENT_HEIGHT - picHeight) / 2; // 得到绘制图片的左上角Y坐标

canvas.drawARGB(255, 200, 128, 128); // 设置背景色

canvas.drawBitmap(bma[currIndex], startX, startY, paint); // 绘制图片

}

}

$(document).ready(function(){dp.SyntaxHighlighter.HighlightAll('code');});

原文链接:
http://blog.csdn.net/hopezhangbo/article/details/7356575
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐