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


    二、运行结果

      


  • 相关阅读:
    新式类、经典类与多继承
    实现抽象类之方式二
    实现抽象类之方式一
    re模块
    28个高频Linux命令
    Git使用教程
    编程语言介绍
    编码
    进制
    操作系统简史
  • 原文地址:https://www.cnblogs.com/walccott/p/4957597.html
Copyright © 2011-2022 走看看