Android畫圖最基本的三個對象(Color,Paint,Canvas)

簡述:

Android畫圖最基本的三個對象(Color,Paint,Canvas)

三個類都存放在 android.graphics包下

1) Color :顏色對象,相當於現實生活中的 ‘調料’

2) Paint : 畫筆對象,相當於現實生活中畫圖用的 ‘筆’————主要的還是對‘畫筆’進行設置

3) Canvas : 畫布對象,相當於現實生活中畫圖用的 ‘紙 或 布’

 

三者相結合,就能畫出基本的圖形

 

常用方法:

 

1)Color :顏色對象

1.可以通過 Color.顏色名,來獲取顏色,應爲是靜態的,返回一個整數值

2.調用靜態的 argb方法,可以調出個性的顏色

 

alpha 是設置透明度的;red 設置紅色; green是設置綠色; blue設置藍色,範圍都是[0-255],0至255 顏色依次加深,

 

2)Paint : 畫筆對象,常用方法

 

 

3)Canvas :畫布對象 ,繪製常見圖形的方法

 

在android中自定義圖形

1)需要繼承 View 這個類,所有的組件都是繼承於這個類

2)並要實現一個帶Context參數的構造函數,因爲父類中,沒有隱式無參的構造函數

3)需重寫父類中的onDraw方法,一切的畫圖操作將在這進行

 

1.具體代碼:自定義 MyView

[java] view plain copy
  1. package com.shudu;  
  2.   
  3. import android.content.Context;  
  4. import android.graphics.BitmapFactory;  
  5. import android.graphics.Canvas;  
  6. import android.graphics.Color;  
  7. import android.graphics.Paint;  
  8. import android.view.View;  
  9.   
  10. // 自定義 view,需要實現 一個顯式的構造函數,重寫 onDraw 方法,一切的操作都在該方法上進行  
  11. public class MyView extends View {  
  12.       
  13.     public MyView(Context context)  
  14.     {  
  15.         super(context);  
  16.     }  
  17.       
  18.     /** 
  19.      * 要畫圖形,最起碼要有三個對象: 
  20.      * 1.顏色對象 Color 
  21.      * 2.畫筆對象 Paint 
  22.      * 3.畫布對象 Canvas 
  23.      */  
  24.       
  25.     @Override  
  26.     public void onDraw(Canvas canvas) {  
  27.         // TODO Auto-generated method stub  
  28.           
  29.         Paint paint = new Paint();  
  30.         paint.setColor(Color.BLUE);  
  31.         //設置字體大小  
  32.         paint.setTextSize(100);  
  33.           
  34.         //讓畫出的圖形是空心的  
  35.         paint.setStyle(Paint.Style.STROKE);  
  36.         //設置畫出的線的 粗細程度  
  37.         paint.setStrokeWidth(5);  
  38.         //畫出一根線  
  39.         canvas.drawLine(00200200, paint);  
  40.           
  41.         //畫矩形  
  42.         canvas.drawRect(200500300300, paint);  
  43.           
  44.         //畫圓  
  45.         canvas.drawCircle(200200100, paint);  
  46.         //畫出字符串 drawText(String text, float x, float y, Paint paint)   
  47.         // y 是 基準線 ,不是 字符串的 底部  
  48.         canvas.drawText("apple"6060, paint);  
  49.         canvas.drawLine(06050060, paint);  
  50.           
  51.         //繪製圖片  
  52.         canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher), 150150, paint);  
  53.           
  54.         super.onDraw(canvas);  
  55.     }  
  56.   
  57. }  

 

注意:

畫 字符串

//畫出字符串 drawText(String text, float x, float y, Paint paint) 
  // y 是 基準線 ,不是 字符串的 底部,就像 英語本上 寫的英文 有些超出了 那根水平線就是基準線


  canvas.drawText("apple", 60, 60, paint);
  canvas.drawLine(0, 60, 500, 60, paint);


2.Activity類,在Activity中顯示出來

[java] view plain copy
  1. package com.shudu;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5.   
  6. public class Shudu01Activity extends Activity {  
  7.     /** Called when the activity is first created. */  
  8.     @Override  
  9.     public void onCreate(Bundle savedInstanceState) {  
  10.         super.onCreate(savedInstanceState);  
  11.         setContentView(new MyView(this));  
  12.     }  
  13. }  


 具體效果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章