Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android新手入門2016(16)--畫圖

Android新手入門2016(16)--畫圖

編輯:關於Android編程

畫圖設計到圖片的格式,有空可以看看圖片資源各種格式。了解一下圖片格式,對學習有用的。而且我面試別人的時候也很喜歡問這個問題,哈哈。

先看個圖。

\\

直接看代碼吧,注釋很詳細了。

activity_hello_world.xml

 

  
  
	  
  
  
HelloWorldActivity.java

 

 

package com.fable.helloworld;  
  
import android.app.Activity;  
import android.content.res.Resources;
import android.graphics.Bitmap;  
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class HelloWorldActivity extends Activity {  
	
	ImageView iv;  
    Button btn1,btn2,btn3;  
    Resources r;  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_hello_world);  
        
        iv=(ImageView)this.findViewById(R.id.ImageView01);  
        btn1=(Button)this.findViewById(R.id.Button01);  
        btn2=(Button)this.findViewById(R.id.Button02);  
        btn3=(Button)this.findViewById(R.id.Button03);  
  
        btn1.setOnClickListener(new ClickEvent());  
        btn2.setOnClickListener(new ClickEvent());  
        btn3.setOnClickListener(new ClickEvent());  
          
        r = this.getResources();  
    }  
    class ClickEvent implements View.OnClickListener {  
  
        public void onClick(View v) {  
            if(v==btn1)//顯示資源圖片  
            {
            	//功能等效  
                //iv.setBackgroundResource(R.drawable.fable5);//打開資源圖片  
                Bitmap bmp=BitmapFactory.decodeResource(r, R.drawable.fable5);//打開資源圖片  
                iv.setImageBitmap(bmp);  //顯示圖片
            }  
            else if(v==btn2)//顯示並繪畫資源圖片  
            {  
                Bitmap bmp=BitmapFactory.decodeResource(r, R.drawable.fable5);//只讀,不能直接在bmp上畫  
                Bitmap newb = Bitmap.createBitmap( 300, 300, Config.ARGB_8888 );//創建一個新的位圖
                  
                Canvas canvasTemp = new Canvas( newb );//畫布,畫布,用newb的內容來畫在畫布上
                canvasTemp.drawColor(Color.TRANSPARENT);//設置畫布的背景顏色為透明TRANSPARENT
                  
                Paint p = new Paint();//畫筆,哈哈,有點意思吧,又畫布又畫筆的
                String familyName ="宋體";//使用宋體,可以使用非系統的字體,游戲中很多字體是特殊的,需要放在assets/fonts/
                Typeface font = Typeface.create(familyName,Typeface.BOLD);//加粗
                p.setColor(Color.RED);  //畫筆顏色為紅色
                p.setTypeface(font);  //設置字體
                p.setTextSize(24);  //字體大小
                canvasTemp.drawText("肥寶傳說之路",50,50,p); //在畫布上畫上幾個字
                canvasTemp.drawBitmap(bmp, 50, 50, p);//在畫布上畫上剛剛讀出來的fable5
                //上面的東西都是畫在畫布上的newb圖上面的。
                iv.setImageBitmap(newb);  //顯示這個新的圖片
            }  
            else if(v==btn3)//直接在Button上繪圖  
            {  
                Bitmap newb = Bitmap.createBitmap( btn3.getWidth(), btn3.getHeight(), Config.ARGB_8888 ); //創建一個圖 
                Canvas canvasTemp = new Canvas( newb );//把圖放在畫布上面  
                canvasTemp.drawColor(Color.WHITE);//背景顏色是白色  
                Paint p = new Paint();  //畫筆
                String familyName = "宋體";  //使用宋體
                Typeface font = Typeface.create(familyName, Typeface.BOLD);  //設置字體
                p.setColor(Color.BLUE);  //藍色
                p.setTypeface(font);  //設置畫筆的字體
                p.setTextSize(24);  //字體的大小
                canvasTemp.drawText("Android新手入門2016", 14, 24, p);  //寫幾個字,xy不要填太大,超過按鈕大小位置就找不到了
                Drawable drawable = new BitmapDrawable( getApplicationContext().getResources(), newb); //其實這個看的不是很明白 
                btn3.setBackgroundDrawable(drawable);  //把這個圖當做按鈕的背景
            }  
        }  
    }  
}

代碼稍後上傳。
\\
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved