歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android簡單的廣告控件View

在布局文件中引用此View控件即可。

  1. public class GGView extends View {  
  2.     int COMPONENT_WIDTH; // 該控件寬度   
  3.     int COMPONENT_HEIGHT; // 該控件高度   
  4.     boolean initflag = false// 是否要獲取控件的高度和寬度標志   
  5.     static Bitmap[] bma; // 需要播放的圖片的數組   
  6.     Paint paint; // 畫筆   
  7.     int[] drawablesId; // 圖片ID數組   
  8.     int currIndex = 0// 圖片ID數組下標,根據此變量畫圖片   
  9.     boolean workFlag = true// 播放圖片線程標志位   
  10.   
  11.     public GGView(Context father, AttributeSet as) { // 構造器   
  12.         super(father, as);  
  13.         drawablesId = new int[] { // 初始化圖片ID數組   
  14.         R.drawable.adv1, // 將需要播放的圖片ID放於此處即可   
  15.                 R.drawable.adv2, R.drawable.adv3, };  
  16.         bma = new Bitmap[drawablesId.length]; // 創建存放圖片的數組   
  17.         initBitmaps(); // 調用初始化圖片函數,初始化圖片數組   
  18.         paint = new Paint(); // 創建畫筆   
  19.         paint.setFlags(Paint.ANTI_ALIAS_FLAG); // 消除鋸齒   
  20.         new Thread() { // 創建播放圖片線程   
  21.             public void run() {  
  22.                 while (workFlag) {  
  23.                     currIndex = (currIndex + 1) % drawablesId.length;// 改變ID數組下標值   
  24.                     GGView.this.postInvalidate(); // 繪制   
  25.                     try {  
  26.                         Thread.sleep(3000); // 休息三秒   
  27.                     } catch (InterruptedException e) {  
  28.                         e.printStackTrace();  
  29.                     }  
  30.                 }  
  31.             }  
  32.         }.start(); // 啟動線程   
  33.     }  
  34.   
  35.     public void initBitmaps() { // 初始化圖片函數   
  36.         Resources res = this.getResources(); // 獲取Resources對象   
  37.         for (int i = 0; i < drawablesId.length; i++) {  
  38.             bma[i] = BitmapFactory.decodeResource(res, drawablesId[i]);  
  39.         }  
  40.     }  
  41.   
  42.     public void onDraw(Canvas canvas) { // 繪制函數   
  43.         if (!initflag) { // 第一次繪制時需要獲取寬度和高度   
  44.             COMPONENT_WIDTH = this.getWidth(); // 獲取view的寬度   
  45.             COMPONENT_HEIGHT = this.getHeight(); // 獲取view的高度   
  46.             initflag = true;  
  47.         }  
  48.         int picWidth = bma[currIndex].getWidth(); // 獲取當前繪制圖片的寬度   
  49.         int picHeight = bma[currIndex].getHeight(); // 獲取當前繪制圖片的高度   
  50.         int startX = (COMPONENT_WIDTH - picWidth) / 2// 得到繪制圖片的左上角X坐標   
  51.         int startY = (COMPONENT_HEIGHT - picHeight) / 2// 得到繪制圖片的左上角Y坐標   
  52.         canvas.drawARGB(255200128128); // 設置背景色   
  53.         canvas.drawBitmap(bma[currIndex], startX, startY, paint); // 繪制圖片   
  54.     }  
  55. }  
Copyright © Linux教程網 All Rights Reserved