图形绘制之——Canvas详解(四)-Bitmap(位图)及Matrix矩阵

博客介绍了如何在Android中利用Canvas与Bitmap结合进行图形绘制,包括Bitmap的实例化、回收,以及利用Matrix进行缩放、平移、旋转和错切等操作。同时,探讨了PorterDuffXfermode在实现图形重叠效果中的应用,如橡皮擦效果和自定义进度条。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面我们提到过canvas相当于画家,而bitmap相当于画布,前面博客的例子都是直接利用canvas绘制,这里我们来学习一下,利用bitmap先将图形绘制好,然后一起放到最终的canvas中^^。

位图概念:Bitmap可以获得图像文件的信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件。但bitmap是将图片信息全部存入内存,容易印发OutOfMemory(内存溢出)的错误。

先来看一下bitmap的实例获得,这里是其中一种方式,通过已有的图片来获得它的位图,以后我们再讲解如何创建一个空白地方位图。

一.实例化:

注:存入一张照片时,mipmap中不能有大写字母,不能有数字。

BitmapDrawable:

BitmapDrawable中封装的图片就是一个Bitmap对象。

BitmapDrawable drawable = new BitmapDrawale(bitmap);//封装
Bitmap bitmap = drawable.getBitmap();//获取到Drawable中的bitmap
创建新的Bitmap:
  • Bitmap提供:

createBitmap();

createScaleBitmap();进行缩放后的bitmap

  • BitmapFactory工具类提供:

decodeByteArray();//从指定字节数组

decodeFile();//从指定文件

decodeFileDescriptor();//从FileDescriptor对应的文件

decodeResource();//从给定的资源ID

decodeStream();//从指定的输入流

例:

 bitmap= BitmapFactory.decodeResource(getResources(),R.mipmap.j);//实例化

二.回收Bi

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值