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