Android简单的广告控件View
Android简单的广告控件View
在布局文件中引用此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); // 绘制图片
- }
- }
评论暂时关闭