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

转自: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
  1. package com.genwoxue.matrix;  
  2.   
  3.   
  4. import android.content.Context;    
  5. import android.content.res.Resources;  
  6. import android.graphics.Bitmap;  
  7. import android.graphics.BitmapFactory;  
  8. import android.graphics.Canvas;  
  9. import android.graphics.Matrix;  
  10. import android.graphics.Paint;  
  11. import android.graphics.Color;  
  12. import android.view.View;  
  13.   
  14.   
  15. public class MatrixView extends View{  
  16.       
  17.     Paint paint=null;  
  18.     Resources src=null;  
  19.     Bitmap bmp=null;  
  20.       
  21.     public MatrixView(Context context) {     
  22.         super(context);     
  23.           
  24.         /*---------------------------------------------- 
  25.          * 建议尽量把初始化画笔、资源、位图不放在onDraw方法中,这是因为: 
  26.          * onDraw经常会运行 到的,不要在里面new对象,越少越好,不然很浪费内存 
  27.          *--------------------------------------------*/  
  28.           
  29.         //获取画笔paint,初始化画笔  
  30.         paint=new Paint();  
  31.         //获取资源src  
  32.         src=getResources();  
  33.         // 获取位图  
  34.         bmp=BitmapFactory.decodeResource(src, R.drawable.ic_launcher);  
  35.           
  36.     }    
  37.       
  38.     @Override  
  39.     protected void onDraw(Canvas canvas){  
  40.           
  41.         //显示位图  
  42.         canvas.drawBitmap(bmp,220,220,paint);  
  43.         //初始化Matrix,放大3倍  
  44.         Matrix matrix=new Matrix();  
  45.         matrix.setScale(3f, 3f);  
  46.         //显示放大3倍的位图   
  47.         canvas.drawBitmap(bmp, matrix, null);  
  48.           
  49.     }  
  50. }  


2、打开MainActivity.java主文件

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

  MainActivity.java文件源代码如下:

[java] view plaincopy
  1. package com.genwoxue.matrix;  
  2.   
  3. import android.os.Bundle;  
  4. import android.app.Activity;  
  5.   
  6. public class MainActivity extends Activity {  
  7.   
  8.     @Override  
  9.     protected void onCreate(Bundle savedInstanceState) {  
  10.         super.onCreate(savedInstanceState);  
  11.           
  12.         //实例化GraphicsView  
  13.         MatrixView mv = new MatrixView(this);   
  14.           
  15.         /* 在以前我们通过setContentView(R.layout.activity_main)显示布局文件 
  16.          * 本例中使用GraphicsView对象gv代替以前布局文件 
  17.          */  
  18.         setContentView(mv);  
  19.     }  
  20.   
  21. }  


二、运行结果

  


posted on 2015-06-13 22:01  moffis  阅读(228)  评论(0编辑  收藏  举报

导航