准备一张名为picture的图片。
在main.xml中:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#000000">
<com.li.matrixp.MyView
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
在MyMatrixDemo.java中:
package com.li.matrixp;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
public class MyMatrixDemo extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
在MyView.java中:
package com.li.matrixp;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.util.AttributeSet;
import android.view.View;
public class MyView extends View {
private Bitmap bitmap = null ;
private Matrix matrix = new Matrix() ;
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
this.bitmap = BitmapFactory.decodeResource(super.getResources(),
R.drawable.picture);
this.matrix.preScale(0.4f, 0.4f,160,460); //缩放4/10
this.matrix.preRotate(-120,160,460); //翻转120度
this.matrix.preTranslate(160,460); //平移坐标(160,460)
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawBitmap(this.bitmap, this.matrix, null) ;
}
}