android实现图片平移、旋转、缩放

时间:2026-02-16 05:19:01

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); }}       // 画原图

android实现图片平移、旋转、缩放

android实现图片平移、旋转、缩放

© 2026 海能知识库
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com