Android 学习笔记之Bitmap位图的缩放
2023-09-11 14:17:58 时间
位图的缩放也可以借助Matrix或者Canvas来实现。
通过postScale(0.5f, 0.3f)方法设置旋转角度,然后用createBitmap方法创建一个经过缩放处理的Bitmap对象,最后用drawBitmap方法绘制到屏幕上,于是就实现了缩放操作。
下面例子中把原位图和经缩放处理的位图都绘制到屏幕上,目的是做一个对比。
- package xiaosi.bitmap;
- import android.app.Activity;
- import android.os.Bundle;
- public class mianActivity extends Activity
- {
- private BitmapView bitmapView = null;
- @Override
- protected void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- bitmapView = new BitmapView(this);
- setContentView(bitmapView);
- }
- }
BitmapView.Java
- package xiaosi.bitmap;
- import android.content.Context;
- import android.content.res.Resources;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.Canvas;
- import android.graphics.Color;
- import android.graphics.Matrix;
- import android.view.View;
- public class BitmapView extends View
- {
- public BitmapView(Context context)
- {
- super(context);
- }
- //重写onDraw方法
- public void onDraw(Canvas canvas)
- {
- // 获取资源文件的引用res
- Resources res = getResources();
- // 获取图形资源文件
- Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.h);
- // 设置canvas画布背景为白色
- canvas.drawColor(Color.BLACK);
- // 在画布上绘制缩放之前的位图,以做对比
- //屏幕上的位置坐标是0,0
- canvas.drawBitmap(bmp, 0, 0, null);
- // 定义矩阵对象
- Matrix matrix = new Matrix();
- // 缩放原图
- matrix.postScale(0.5f, 0.3f);
- //bmp.getWidth(), bmp.getHeight()分别表示缩放后的位图宽高
- Bitmap dstbmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(),
- matrix, true);
- // 在画布上绘制旋转后的位图
- //放在坐标为60,460的位置
- canvas.drawBitmap(dstbmp, 60, 460, null);
- }
- }
源代码下载:点击打开链接
相关文章
- Android-Universal-Image-Loader学习笔记(3)--内存缓存
- android ndk-build 编译静态库libxx.a 以及Android studio openssl 静态库配置(cmake)
- Android学习笔记之短信验证码的获取和读取
- Android学习笔记进阶18 之画图并保存图片到本地
- Android学习笔记进阶之在图片上涂鸦(能清屏)
- Android学习笔记之图像颜色处理(ColorMatrix)
- Android 学习笔记之Bitmap位图的旋转
- Android学习笔记技巧之给文本加边框
- Android学习笔记进阶19之给图片加边框
- Android学习笔记进阶17之LinearGradient
- Android学习笔记进阶十之Matrix错切变换
- Android: 分页浏览的利器 android View Pager
- Android学习笔记之按键操作
- Android-Universal-Image-Loader学习笔记(4)--download
- Android-Universal-Image-Loader学习笔记(一)
- Android Studio升级或更新项目,经常造访的“Could not find com.android.tools.build :gradle: x.x.x”的原因分析
- Android支付宝SDK开发笔记
- Android学习笔记之:android更新ui的几种经常用法
- android学习笔记(9)android程序调试学习
- Android学习笔记(四十):Preference使用