1. 程式人生 > >Android圖形繪製之——貼圖的藝術

Android圖形繪製之——貼圖的藝術

1.自定義view

2.重寫onDraw()方法

3.XML中引用

自定義view程式碼:

public class MyView02 extends View{

    private Bitmap bitmap;//本地圖片資源
private Paint paint;//畫筆
public MyView02(Context context, AttributeSet attrs) {
        super(context, attrs);
initBtimap();
}

    /**
     * 初始化圖片
     */
private void initBtimap() {
        paint 
= new Paint();//建立一個畫筆 bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.h_p_l_image); } /** * 重寫繪製方法 */ @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); paint.setAntiAlias(true);//開啟抗鋸齒 paint.setColor(Color.RED);//設定畫筆顏色 paint.setTextSize(15);//設定畫筆字型大小
canvas.drawBitmap(bitmap, 10, 10, paint);//繪製圖片 canvas.save();//儲存畫布狀態 Matrix m1 = new Matrix();//建立矩陣物件 m1.setTranslate(500, 10);//平移矩陣 Matrix m2 = new Matrix();//建立矩陣物件 m2.setRotate(15);//以一定的角度旋轉矩陣 Matrix m3 = new Matrix();//建立矩陣物件 m3.setConcat(m1, m2);//連線矩陣1和矩陣2 m3.setScale(0.8f, 0.8f);//縮放矩陣 canvas.drawBitmap(bitmap,
m2, paint); canvas.restore();//恢復畫布狀態 canvas.save();//儲存畫面狀態 paint.setAlpha(180);//設定透明度 m1.setTranslate(200, 100);//平移矩陣1 m2.setScale(1.3f, 1.3f);//縮放矩陣2 m3.setConcat(m1, m2);//連線矩陣1和矩陣2 canvas.drawBitmap(bitmap, m3, paint);//繪製圖片 paint.reset();//恢復畫筆設定 canvas.restore();//恢復畫布設定 paint.setTextSize(40);//設定字型大小 paint.setColor(Color.RED);//設定畫筆顏色 canvas.drawText("圖片的寬度" + bitmap.getWidth(), 20, 220, paint); paint.reset(); paint.setTextSize(30); paint.setColor(Color.BLACK); canvas.drawText("圖片的高度" + bitmap.getHeight(), 20, 260,paint); paint.reset();//恢復畫筆設定 } }
XML中引用:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ui.activity.MyViewActivity">
    <testku.mygame.ui.myview.MyView02
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
執行效果: