zoukankan      html  css  js  c++  java
  • Android 学习笔记之Bitmap位图的旋转

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

    通过postRotate方法设置旋转角度,然后用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(1f, 1f);  
    35.         // 向左旋转45度,参数为正则向右旋转  
    36.         matrix.postRotate(-45);  
    37.         //bmp.getWidth(), 500分别表示重绘后的位图宽高  
    38.         Bitmap dstbmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), 500,  
    39.                 matrix, true);  
    40.         // 在画布上绘制旋转后的位图  
    41.         //放在坐标为0,200的位置  
    42.         canvas.drawBitmap(dstbmp, 0, 200, null);  
    43.     }  
    44. }  


     

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

  • 相关阅读:
    swoole 安装方法 使用即时聊天
    git的介绍以及简单应用
    curl的应用
    linux下监听和同步代码配置
    mac skim 修改背景色
    php 编译安装的一个 configure 配置
    mac mysql error You must reset your password using ALTER USER statement before executing this statement.
    yii2 控制器里 action 大小写组合造成的路由问题
    warning : json_decode(): option JSON_BIGINT_AS_STRING not implemented in xxx
    redis 自启动脚本
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/6722668.html
Copyright © 2011-2022 走看看