Bitmap是什么Bitmap的基本思想就是用一个bit位来标记某个元素对应的Value,而Key即是该元素 。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省 。
Bitmap 是位图信息的存储,即?个矩形图像每个像素的颜?信息的存储器 。
Android从基础底层到架构成长的全套笔记,有需要完整版的朋友,可留言【Android】领取!
Drawable是什么Drawable是一种可以在Canvas上进行绘制的抽象的概念,颜色、图片等都可以是一个Drawable 。Drawable可以通过XML定义,或者通过代码创建 。Android中Drawable是一个抽象类,每个具体的Drawable都是其子类 。简单来讲,其可以理解为:图像 。
Drawable 内部存储的是绘制规则,这个规则可以是?个具体的 Bitmap,也可以是?个纯粹的颜?,甚?可以是?个抽象的、灵活的描述 。Drawable 可以不含有具体的像素信息,只要它含有的信息?以在 draw(Canvas) ?法被调?时进?绘制就够了 。由于 Drawable 存储的只是绘制规则,因此在它的 draw() ?法被调?前,需要先调? Drawable.setBounds() 来为它设置绘制边界 。
【你居然不懂Bitmap和Drawable?相关知识大扫盲】Drawable的优点:
- 使用简单,比自定义View成本低
- 非图片类的drawable所占空间小,能减小apk大小
//drawable convert bitmappublic static Bitmap drawableToBitmap(Drawable drawable) {Bitmap bitmap = null;if (drawable instanceof BitmapDrawable) {BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;if (bitmapDrawable.getBitmap() != null) {return bitmapDrawable.getBitmap();}}if ((drawable.getIntrinsicWidth() <= 0) || (drawable.getIntrinsicHeight() <= 0)) {bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);}else {bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);}Canvas canvas = new Canvas(bitmap);drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());drawable.draw(canvas);return bitmap;}//bitmap convert drawablepublic static Drawable bitmapToDrawable(Context context, Bitmap bitmap) {return new BitmapDrawable(context.getResources(), bitmap);}
事实上,由于 Bitmap 和 Drawable 是两个不同的概念,因此确切地说它们并不是互相「转换」,?是从其中?个获得另?个的对象:- Bitmap -> Drawable:创建?个 BitmapDrawable 。
- Drawable -> Bitmap:如果是 BitmapDrawable,使?BitmapDrawable.getBitmap() 直接获取;如果不是,创建?个 Bitmap和?个 Canvas,使? Drawable 通过 Canvas 把内容绘制到 Bitmap 中 。
转载平台:掘金
链接:
https://juejin.cn/post/7126798240573292558
推荐阅读
- 运势|8月,你将获得2倍于往年的财富增长,财务更加自由,实现人生梦想的三大生肖
- 运动|钓鱼人偷鸡摸狗?告你毁谤你知道吗!都是永不空军给害的
- 面部护理的重要性你知道吗 面部护理的好处
- 一个男人彻底爱上你的5种表现 一个男人喜欢你的表现
- 教你如何去分辨iPhone手机是不是翻新机 如何查询iphone是不是翻新机
- |上司有好处,你怎么做才不会得罪领导?
- 雨雾天到底开雾灯还是开双闪?车上这些灯光的使用你都知道吗
- 开车遇到交通事故,若你是无责,有三笔赔偿别忘了要
- 这8种错误跑姿跑者经常中招,都存在哪些危害?
- 保护发动机,让你的汽车更有活力