zoukankan      html  css  js  c++  java
  • 第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. }  


    二、运行结果

      


  • 相关阅读:
    Haskell Interactive Development in Emacs
    Access Java API in Groovy Script
    手工设置Eclipse文本编辑器的配色
    Color Theme of Emacs
    Gnucash的投资记录
    Special Forms and Syntax Sugars in Clojure
    Use w3m as Web Browser
    SSE指令集加速之 I420转BGR24
    【图像处理】 增加程序速度的方法
    TBB 入门笔记
  • 原文地址:https://www.cnblogs.com/walccott/p/4957597.html
Copyright © 2011-2022 走看看