寫的是一個基本的常用的繪圖小程式
寫的比較亂,只是為了練習
直接上代碼
package mars.com;import android.app.Activity;import android.os.Bundle;public class Demo_Activity extends Activity {private MyGraphics myGraphics = null;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);this.myGraphics = new MyGraphics(this);setContentView(myGraphics);}}
繪圖java檔案
package mars.com;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Paint.Style;import android.graphics.Path;import android.graphics.Typeface;import android.graphics.drawable.BitmapDrawable;import android.view.View;public class MyGraphics extends View implements Runnable {private Paint paint = null;public MyGraphics(Context context) {super(context);paint = new Paint();// 構建對象new Thread(this).start();// 線程啟動}// 重寫onDraw方法protected void onDraw(Canvas canvas) {super.onDraw(canvas);paint.setColor(Color.RED);// 為畫筆設定顏色paint.setAlpha(100);// 設定畫筆的透明度,取值範圍為0-255canvas.drawColor(Color.WHITE);// 為畫布設定顏色canvas.drawLine(50, 50, 450, 50, paint);// 繪製直線canvas.drawRect(100, 100, 200, 600, paint);// 繪製矩形paint.setAlpha(50);// 設定畫筆的透明度paint.setStyle(Style.STROKE);// 設定畫筆為空白心paint.setStrokeWidth(3);// 設定空心的線寬canvas.drawRect(300, 100, 400, 600, paint);// 繪製矩形paint.setTypeface(Typeface.SANS_SERIF);// 設定字型樣式paint.setTextSize(20);// 設定畫筆字型的大小canvas.drawText("王玉超", 10, 350, paint);// 設定畫筆字型的大小// 繪製任意多變形Path path = new Path();path.moveTo(50, 100);// 串連到下一點path.lineTo(50, 300);path.lineTo(20, 60);path.lineTo(60, 80);path.lineTo(66, 300);canvas.drawPath(path, paint);// 繪製手繪多邊形// 繪製映像Bitmap bitmap = null;bitmap = ((BitmapDrawable) getResources().getDrawable(R.drawable.ic_launcher)).getBitmap();canvas.drawBitmap(bitmap, 50, 150, null);}// 重載run方法public void run() {while (!Thread.currentThread().isInterrupted()) {try {Thread.sleep(1000);} catch (Exception e) {Thread.currentThread().interrupt();}postInvalidate();// 更新介面}}}
運行結果
當然除了這些簡單的使用之外,android還有很多操作,不過我認為最重要的就是畫筆paint和畫布canvas。只有掌握好這兩個類,才會更好的畫出其他圖形
比如說橢圓,園,圓弧,繪製多條直線,裁剪,旋轉畫布,鎖定畫布,繪製點,設定下弧線,設定傾斜度,這個好多、只要參考android API即可。這裡就不一一列舉了。