1、activity_main.xml
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="#fedd00"
tools:context="com.example.test8_2.MainActivity" >
<com.example.test8_2.MyView
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</RelativeLayout>
2、MainActivity.java
package com.example.test8_2;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
3、MyView.java
package com.example.test8_2;
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 { // 继承View
private Bitmap bitmap = null ; // 定义bitmap
private Matrix matrix = new Matrix(); // 定义matrix
private Matrix matrix1 = new Matrix(); // 定义matrix
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
this.bitmap = BitmapFactory.decodeResource(super.getResources(),R.drawable.love); // 取得Bitmap
// 创建一个指定大小的图片
this.bitmap = Bitmap.createScaledBitmap(this.bitmap, 80, 120,true);
// 对图片进行缩放、旋转、平移操作
this.matrix.preScale(1.3f, 1.3f, 100, 150); // 放大1.3倍
this.matrix.preRotate(0, 100, 150) ; // 在指定坐标翻转0度
this.matrix.preTranslate(100, 70) ; // 图像平移
// 对图片进行缩放、旋转、平移操作
this.matrix1.preScale(0.5f, 0.5f, 230, 150); // 缩小一倍
this.matrix1.preRotate(60, 230, 150) ; // 在指定坐标翻转60度
this.matrix1.preTranslate(230, 70) ;} // 图像平移
protected void onDraw(Canvas canvas) { // 覆写onDraw()方法
canvas.drawBitmap(this.bitmap, this.matrix, null); // 画变换后的图
canvas.drawBitmap(this.bitmap, this.matrix1, null); // 画变换后的图
canvas.drawBitmap(this.bitmap, 0,0, null); }} // 画原图

