簡述:
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
- package com.shudu;
- import android.content.Context;
- import android.graphics.BitmapFactory;
- import android.graphics.Canvas;
- import android.graphics.Color;
- import android.graphics.Paint;
- import android.view.View;
- // 自定義 view,需要實現 一個顯式的構造函數,重寫 onDraw 方法,一切的操作都在該方法上進行
- public class MyView extends View {
- public MyView(Context context)
- {
- super(context);
- }
- /**
- * 要畫圖形,最起碼要有三個對象:
- * 1.顏色對象 Color
- * 2.畫筆對象 Paint
- * 3.畫布對象 Canvas
- */
- @Override
- public void onDraw(Canvas canvas) {
- // TODO Auto-generated method stub
- Paint paint = new Paint();
- paint.setColor(Color.BLUE);
- //設置字體大小
- paint.setTextSize(100);
- //讓畫出的圖形是空心的
- paint.setStyle(Paint.Style.STROKE);
- //設置畫出的線的 粗細程度
- paint.setStrokeWidth(5);
- //畫出一根線
- canvas.drawLine(0, 0, 200, 200, paint);
- //畫矩形
- canvas.drawRect(200, 500, 300, 300, paint);
- //畫圓
- canvas.drawCircle(200, 200, 100, paint);
- //畫出字符串 drawText(String text, float x, float y, Paint paint)
- // y 是 基準線 ,不是 字符串的 底部
- canvas.drawText("apple", 60, 60, paint);
- canvas.drawLine(0, 60, 500, 60, paint);
- //繪製圖片
- canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher), 150, 150, paint);
- super.onDraw(canvas);
- }
- }
注意:
畫 字符串
//畫出字符串 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中顯示出來
- package com.shudu;
- import android.app.Activity;
- import android.os.Bundle;
- public class Shudu01Activity extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(new MyView(this));
- }
- }
具體效果: