Bitmap 和 Drawable 的区别及转换

Android Bitmap和Drawable相互转换的简单代码 很多开发者表示,不知道Android的Drawable和Bitmap之间如何相关转换。下面Android123给大家两种比较简单高效的方法。   一、Bitmap转Drawable 代码如下:  Bitmap bm=xxx; //xxx根据你的情况获取   BitmapDrawable bd=BitmapDrawable(bm);  Android开发网提示因为BtimapDrawable是Drawable的子类,最终直接使用bd对象即可。   二、 Drawable转Bitmap   转成Bitmap对象后,可以将Drawable对象通过Android的SK库存成一个字节输出流,最终还可以保 立即下载

定义

Drawable

A Drawable is a general abstraction for “something that can be drawn.”
在谷歌官方文档中的定义是: Drawable 是任何可以绘画对象的一个抽象

Bitmap

位图文件(Bitmap),扩展名可以是.bmp或者.dib。位图是Windows标准格式图形文件,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2、4、8、16、24和32位色彩。 ——百度百科

区别

从上面的定义中,我们明显可以看出来,Drawable 的作用范围明显要大很多,Drawable 包括了 Bitmap,它还包括了 Shape,Layer 等。

两者在 Android 中的使用

绝大多数的 Android UI Framework 中使用的是 Drawable,而不是 Bitmap,View 控件能使用任何的 Drawable 作为背景。比如说 ImageView 有 setImageDrawable() 和 setImageBitmap() 两个方法,但是当你调用 setImageBitmap() 时,程序内部将会把 Bitmap 包裹进 BitmapDrawable 中,下面是代码

public void setImageBitmap(Bitmap bm) {
    setImageDrawable(new BitmapDrawable(mContext.getResources(), bm));
}

Bitmap 2 Drawable

Drawable d = new BitmapDrawable(getResources(), bitmap);

Drawable 2 Bitmap

Bitmap icon = BitmapFactory.decodeResource(context.getResources(), R.drawable.icon_resource);
Android Bitmap和Drawable的对比 主要介绍了Android Bitmap和Drawable的对比的相关资料,需要的朋友可以参考下 立即下载

相关推荐

微信本地数据解密实战:从AES加密原理到EnMicroMsg.db恢复指南

数据加密是保障信息安全的核心技术,其中对称加密算法AES因其高效可靠,被广泛应用于各类本地数据保护场景。其原理是通过特定密钥对数据进行混淆转换,确保未经授权者无法读取原始内容。在移动应用领域,本地数据库加密对于保护用户隐私、防止数据泄露具有重要价值。微信作为国民级应用,对其本地存储的聊天记录数据库(EnMicroMsg.db)采用了基于设备标识和用户UIN生成的AES-256-CBC加密方案。理解这一机制,不仅有助于在合法合规前提下进行个人数据备份与恢复,也为开发者进行客户端安全分析、兼容工具开发提供了基础

weixin_30764883的博客 572

android drawable和bitmap,自定义View Bitmap与Drawable的区别

1.什么是BitmapBitmap 是位图信息的存储,就是一个矩形图像每个像素的颜色信息的存储器。2.什么是Drawable2.1.Drawable是一种可以在Canvas上进行绘制的抽象的概念。Drawable 是一个可以调用Canvas来进行绘制的上层工具。Drawable.draw(canvas)可以将Drawable设置的绘制内容绘制到Canvas中。2.2.Drawable的内部存储的是...

weixin_34329524的博客 1057

Pytorch版deeplabv3+环境配置训练自己的数据集

参考:https://blog.youkuaiyun.com/qq_36766560/article/details/110009622?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161594607816780266214828%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161594607816780266214828

Ring__Rain的博客 1万+

Drawable与Bitmap的联系与区别

在Android中,Drawable代表的是处理图像通用的类,它还有很多子类,其中一个就是BitmapDrawable。 Bitmap称作位图,后缀名通常为bmp。Bitmap是一个Drawable,但是Drawable不只仅仅包含Bitmap这一类图像。 Drawable转Bitmap:private Bitmap bitmap;private void drawableToBitamp(Dr

天花板的随笔 1422

ANSYS Workbench新手避坑:用BEAM188单元模拟工字钢悬臂梁,从建模到后处理完整流程

本文详细介绍了在ANSYS Workbench中使用BEAM188单元模拟工字钢悬臂梁的完整流程,从建模到后处理。重点讲解了如何正确定义工字钢截面、避免单位制和截面方向的常见错误,以及准确解读变形和应力结果。文章还提供了实用技巧和陷阱规避方法,帮助新手工程师快速掌握有限元分析的关键技能。

weixin_27051161的博客 412

python机器人编程——用pytorch实现六轴机械臂的正向和逆向数值解算,及python算法解析

前面对六轴(或多轴)机械臂进行了一些研究,特别是利用几何进行简化,实现逆解,来完成比较简单的搬用任务。然而,如果需要比较精确的操作任务,可能需要更加复杂的机械臂解算。其中比较复杂的是数值解算,这种解算往往涉及到比较复杂的机器人运动等原理知识,比较难以上手。但是,python的生态挺全面,已经有很多牛人实现了数值解法,但是去看他们的代码,还是觉得费劲。此外,随着深度神经网络的兴起,很多是用建立深度学习神经网络,去利用机械臂输入输出的大数据,训练机械臂的控制模型,这个上手也比较慢。

JAMES费的空间 5797

bitmap 与 drawable之间转换

很多开发者表示,不知道Android的Drawable和Bitmap之间如何相关转换。首先BitmaoDrawbale是Drawable的子类,知道了这一点大家对Bitmap和Drawable之间的转换就不会感到困难了!   一、Bitmap转Drawable  Bitmap b

ooo4561213的专栏 911

SpringBoot项目整合Knife4j接口文档

写满接口信息的文档,每条接口包括:请求参数,响应参数,接口地址,接口名称,请求类型,请求格式,备注。

诨号无敌鸭的博客 1017

Bitmap和Drawable的区别

命名的时候不过脑子,往往就会有非常多的后遗症,就比如说拼写错误,后面人如果要重新改方法名的话代码评审的时候就需要花费额外的功夫去评审更多的文件,还有方法反射的风险。特别是遇到剧本写的非常好的动漫,它总是能在恰到好处的地方给你留下悬念,从而引诱你非常期待下一集,没错,说的就是你《我推的孩子》。我们可以看到对于Bitmap类,官方是不支持继承的,也就是不支持自定义Bitmap的,因为Bitmap更多的像是Kotlin的Data类,里面仅仅存储了图片的相关信息。awable的作用是封装绘制的过程。

qq_31433709的博客 901

短信验证码逻辑漏洞学习——各种绕过姿势技巧

短信验证码逻辑漏洞学习——各种绕过姿势技巧

记录并分享学习安全的知识点.. 2559

(王道408考研操作系统)第一章计算机系统概述-第三节2:中断和异常

注意!!! 本节内容和《计算机组成原理》中的中断有重合,如果需要详细了解的话可以点击链接跳转:(计算机组成原理)第七章输入和输出系统-第四节2:I/O方式之程序中断方式 为了内容完整,部分内容会借用上述文章 文章目录一:中断和异常的基本概念(1)中断和异常的定义 一:中断和异常的基本概念 在操作系统引入核心态和用户态这两种工作状态后,就需要考虑两种状态之间是如何切换的。 操作系统内核工作在核心态,用户程序工作在用户态,系统不允许用户程序使用核心态的功能,但是用户程序为了完成某些操作又必须使用这些功能

快乐江湖的博客 3535

谈谈安卓的Bitmap与Drawable

前言 搞安卓有些时间了,对图片老是存在一些疑惑:给View设置背景的原理是啥?啥是Drawable呢?Bitmap又是啥呢 ?Bitmap与Drawable有啥区别呢?整天看着这些熟悉有陌生的名词,当面对这些问题时却发现自己能说出来的却很少,,,, 今天就来谈谈自己的发现。 康康Drawable 首先用一句话来总结下Drawable吧:Drawable是对安卓中所有可绘制图像的抽象,也就是说安卓中的图像是以Drawable形式存在的。 为啥说安卓中的图像是以Drawable形式存在的? 这点就要从View展

dev晴天的博客 1908

基于Simulink的风电系统背靠背变流器解耦控制仿真

本文完成了基于 Simulink 的风电背靠背变流器解耦控制仿真,实现了:✅掌握 dq 解耦控制的数学本质✅构建 MSC + GSC 完整控制链✅验证其在动态、扰动下的卓越性能✅达成高解耦度、低 THD、稳母线三大目标。

xiaoheshang_123的博客 79

Bitmap和Drawable区别及转换

占用内存 绘制速度 支持像素操作 支持旋转缩放 支持透明度 Bitmap 大 慢 支持 支持 支持 Drawable 小 快 不支持 支持 支持 Bitmap含义:位图,文件格式一般为bmp Drawable含义:Android下的图形对象,可以装载png、gif、jpg、bmp等格式的图像 Bitmap获取对象及获取属性: Bitmap bmp = BitmapFac...

冰冰有礼的博客 735

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Android Bitmap 与 Drawable之间的区别和转换

//转换Bitmap to Drawable Bitmap bitmap = new Bitmap (...); Drawable drawable = new BitmapDrawable(bitmap);   //转换Drawable to Bitmap Drawable d = ImagesList.get(0); Bitmap bitmap = ((BitmapDrawable

ADUIT 1371

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

android中的Bitmap,Drawable,Canvas,Paint之间的区别和转换

android中的Bitmap,Drawable,Canvas,Paint之间的区别和转换 分类: 转载的知识2011-07-19 09:45 975人阅读 评论(0) 收藏 举报 android图形nullbytej2mematrix 转载地址:http://www.cnblogs.com/playing/archive/2011/05/10/2042241.htm

我的 701

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

android中drawable bitmap canvas paint的转换和区别

1.概念区别:     Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565、RGB888。作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低。我们理解为一种存储对象比较好。     Drawable - 作为Android平下通用的图形对象,它可以装载常用格式的图像,比如GIF、PNG、JPG,当然也支持BMP,当然还提供一些高级的

qq_33472662的博客 781

Android中Drawable Bitmap Canvas Paint之间区别与转换

1.概念区别:很多网友刚刚开始学习Android平台,对于Drawable、Bitmap、Canvas和Paint它们之间的概念不是很清楚,其实它们除了Drawable外早在Sun的J2ME中就已经出现了,但是在Android平台中,Bitmap、Canvas

Natepan的专栏 1349

Drawable与Bitmap相互转换

Bitmap和Drawable区别 在进行两者的转换之前我们需要了解:Biamap与Drawable的区别 Biamap转换为Drawable Bitmap转换为Drawable Drawable bitmapDrawable = new BitmapDrawable(bitmap); imageView.setBackground(bitmapDrawable); Drawable转换...

DLUT_WJX的博客 518

setBackgroundDrawable与setImageDrawable的区别,获取资源文件 r.drawable中的图片转换为drawable、bitmap...

ImageView中的属性方法setBackgroundDrawable(drawable)代表以这个drawable为背景来填充ImageView的宽高 及ImageView多高多宽,drawable也相应放大至多高多宽 setImageDrawable(drawable)代表以这个drawable的实际大小放到ImageView中,并不会放大drawable的实际大小 ...

weixin_30267697的博客 226
上一篇: Windows下IntelliJ IDEA配置git项目
coder_ken
博客等级 码龄12年 14粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值