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. }  


    二、运行结果

      


  • 相关阅读:
    NYOJ 625 笨蛋的难题(二)
    NYOJ 102 次方求模
    ZJU Least Common Multiple
    ZJUOJ 1073 Round and Round We Go
    NYOJ 709 异形卵
    HDU 1279 验证角谷猜想
    BNUOJ 1015 信息战(一)——加密程序
    HDU 1202 The calculation of GPA
    "蓝桥杯“基础练习:字母图形
    "蓝桥杯“基础练习:数列特征
  • 原文地址:https://www.cnblogs.com/walccott/p/4957597.html
Copyright © 2011-2022 走看看