android matrix 实现点击旋转,10.4.1 使用Matrix实现旋转、缩放和平移(1)

10.4  图形特效

10.4.1  使用Matrix实现旋转、缩放和平移(1)

在Android图形API中提供了一个Matrix矩形类,该类具有一个3×3的矩阵坐标。通过该类可以实现图形的旋转、平移和缩放。该类的详细方法如表10-6所示。

表10-6  Matrix常用方法

方法名称

方法描述

void reset()

重置一个matrix对象

void set(Matrix src)

复制一个源矩阵,与构

造方法Matrix(Matrix src)一样

boolean isIdentity()

返回这个矩阵是否定义

void setRotate(float degrees)

指定一个角度以(0,0)

为坐标进行旋转

void setRotate(float degrees,

float px, float py)

指定一个角度以(px,py)

为坐标进行旋转

void serScale(float sx, float sy)

缩放处理

void serScale(float sx, float sy,

float px, float py)

以坐标(px,py)进行缩放

void setTranslate(float dx, float dy)

平移

void setSkew(float kx, float ky)

倾斜处理

void setSkew(float kx, float ky, float px, float py)

以坐标(px,py)进行倾斜

下面通过一个实例来演示Matrix的具体应用,在本实例中我们自定义一个View类,在该类中拥有一个Bitmap和Matrix实例,Bitmap实例从系统资源加载一张图片,覆盖View类的onDraw()方法,在该方法中通过reset()方法初始化Matrix,并设置其旋转或缩放属性,使用Canvas的drawBitmap()方法将Bitmap重新绘制在视图中。通过键盘事件onKeyDown()实现旋转属性和缩放属性的改变,调用postInvalidate()方法重新绘制Bitmap。实例步骤说明如下:

(1)创建一个Android工程"GraphicMatrix",入口Activity的名称为MainActivity。

代码清单10-24  MainActivity.javapackage cn.com.farsight.graphicMatrix;

import android.app.Activity;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.Canvas;

import android.graphics.Matrix;

import android.os.Bundle;

import android.view.KeyEvent;

import android.view.View;

public class MainActivity extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

}

}

(2)在该工程的res/drawable/目录下添加一张图片资源girl.jpg。

【责任编辑:book TEL:(010)68476606】

点赞 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值