您的位置:首页 > 移动开发 > Android开发

第53章、Matrix图形处理(从零开始学Android)

2015-06-13 22:01 295 查看
转自:http://blog.csdn.net/jianghuiquan/article/details/8569159

在android中通过Canvas显示图像我们已经明白了,但如果想让图像旋转、缩放、透明……,我们则要使用Matrix。

  本案例让位图放大3倍。

一、程序文件

  1、新建BitmapView.java文件。

  在“src/com.genwoxue.matrix”位置,新建MatixView.java文件。

  


  MatixView.java文件源代码如下:

[java] view
plaincopy

package com.genwoxue.matrix;

import android.content.Context;

import android.content.res.Resources;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.graphics.Canvas;

import android.graphics.Matrix;

import android.graphics.Paint;

import android.graphics.Color;

import android.view.View;

public class MatrixView extends View{

Paint paint=null;

Resources src=null;

Bitmap bmp=null;

public MatrixView(Context context) {

super(context);

/*----------------------------------------------

* 建议尽量把初始化画笔、资源、位图不放在onDraw方法中,这是因为:

* onDraw经常会运行 到的,不要在里面new对象,越少越好,不然很浪费内存

*--------------------------------------------*/

//获取画笔paint,初始化画笔

paint=new Paint();

//获取资源src

src=getResources();

// 获取位图

bmp=BitmapFactory.decodeResource(src, R.drawable.ic_launcher);

}

@Override

protected void onDraw(Canvas canvas){

//显示位图

canvas.drawBitmap(bmp,220,220,paint);

//初始化Matrix,放大3倍

Matrix matrix=new Matrix();

matrix.setScale(3f, 3f);

//显示放大3倍的位图

canvas.drawBitmap(bmp, matrix, null);

}

}

2、打开MainActivity.java主文件

  打开“src/com.genwoxue.matrix/MainActivity.java”文件。

  MainActivity.java文件源代码如下:

[java] view
plaincopy

package com.genwoxue.matrix;

import android.os.Bundle;

import android.app.Activity;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//实例化GraphicsView

MatrixView mv = new MatrixView(this);

/* 在以前我们通过setContentView(R.layout.activity_main)显示布局文件

* 本例中使用GraphicsView对象gv代替以前布局文件

*/

setContentView(mv);

}

}

二、运行结果

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: