• Android学习笔记之Bitmap位图的缩放


    位图的缩放也可以借助Matrix或者Canvas来实现。

    通过postScale(0.5f, 0.3f)方法设置旋转角度,然后用createBitmap方法创建一个经过缩放处理的Bitmap对象,最后用drawBitmap方法绘制到屏幕上,于是就实现了缩放操作。

    下面例子中把原位图和经缩放处理的位图都绘制到屏幕上,目的是做一个对比。

    1. package xiaosi.bitmap;  
    2.   
    3. import android.app.Activity;  
    4. import android.os.Bundle;  
    5.   
    6. public class mianActivity extends Activity  
    7. {  
    8.   
    9.     private BitmapView bitmapView = null;  
    10.     @Override  
    11.     protected void onCreate(Bundle savedInstanceState)  
    12.     {  
    13.         super.onCreate(savedInstanceState);  
    14.         bitmapView = new BitmapView(this);  
    15.         setContentView(bitmapView);  
    16.     }  
    17. }  


     

    BitmapView.Java

    1. package xiaosi.bitmap;  
    2.   
    3. import android.content.Context;  
    4. import android.content.res.Resources;  
    5. import android.graphics.Bitmap;  
    6. import android.graphics.BitmapFactory;  
    7. import android.graphics.Canvas;  
    8. import android.graphics.Color;  
    9. import android.graphics.Matrix;  
    10. import android.view.View;  
    11.   
    12. public class BitmapView extends View  
    13. {  
    14.     public BitmapView(Context context)  
    15.     {  
    16.         super(context);  
    17.     }  
    18.   
    19.     //重写onDraw方法  
    20.     public void onDraw(Canvas canvas)  
    21.     {  
    22.         // 获取资源文件的引用res  
    23.         Resources res = getResources();  
    24.         // 获取图形资源文件  
    25.         Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.h);  
    26.         // 设置canvas画布背景为白色  
    27.         canvas.drawColor(Color.BLACK);  
    28.         // 在画布上绘制缩放之前的位图,以做对比  
    29.         //屏幕上的位置坐标是0,0  
    30.         canvas.drawBitmap(bmp, 0, 0, null);  
    31.         // 定义矩阵对象  
    32.         Matrix matrix = new Matrix();  
    33.         // 缩放原图  
    34.         matrix.postScale(0.5f, 0.3f);  
    35.         //bmp.getWidth(), bmp.getHeight()分别表示缩放后的位图宽高  
    36.         Bitmap dstbmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(),  
    37.                 matrix, true);  
    38.         // 在画布上绘制旋转后的位图  
    39.         //放在坐标为60,460的位置  
    40.         canvas.drawBitmap(dstbmp, 60, 460, null);  
    41.     }  
    42. }  


     

    源代码下载:点击打开链接

  • 相关阅读:
    dotnet 新项目格式与对应框架预定义的宏
    dotnet 线程静态字段
    dotnet 线程静态字段
    dotnet 通过 WMI 拿到显卡信息
    dotnet 通过 WMI 拿到显卡信息
    dotnet 通过 WMI 获取指定进程的输入命令行
    dotnet 通过 WMI 获取指定进程的输入命令行
    dotnet 通过 WMI 获取系统信息
    dotnet 通过 WMI 获取系统信息
    PHP show_source() 函数
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/6721737.html
Copyright © 2020-2023  润新知