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

Android Bitmap 与 Drawable之间的区别和转换,第1张

Android bitmap和drawable的区别和转换如下:

1bitmap 转换 drawable

 Bitmap bitmap = new Bitmap(); Drawable drawable = new BitmapDrawable(bitmap);

 //Drawable drawable = new FastBitmapDrawable(bitmap);

2Drawable to Bitmap

BitmapDrawable, FastBitmapDrawable直接用getBitmap

 b 其他类型的Drawable用Canvas画到一个bitmap上

 Canvas canvas = new Canvas(bitmap)

     drawabledraw(canvas);

 Drawable d = ImagesListget(0); Bitmap bitmap =  ((BitmapDrawable)d)getBitmap();

区别如下:

1Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565、RGB888。作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低。

2Drawable - 作为Android平下通用的图形对象,它可以装载常用格式的图像,比如GIF、PNG、JPG,当然也支持BMP,当然还提供一些高级的可视化对象,比如渐变、图形等。

另外还有如下相类似的格式:

Canvas - 名为画布,可以看作是一种处理过程,使用各种方法来管理Bitmap、GL或者Path路径,同时它可以配合Matrix矩阵类给图像做旋转、缩放等 *** 作,同时Canvas类还提供了裁剪、选取等 *** 作。

Paint - 可以把它看做一个画图工具,比如画笔、画刷。管理了每个画图工具的字体、颜色、样式。

这里有一个方法可以获取手机所有包含的文件夹路径,不知道是不是你想要的效果,代码如下

[mw_shl_code=java,true] private void getPhotoThumbnail() {

//查询的列

String[] projection = new String[] { MediaStoreImagesMedia_ID,

MediaStoreImagesMediaBUCKET_ID, // 直接包含该文件的文件夹ID,防止在不同下的文件夹重名

MediaStoreImagesMediaBUCKET_DISPLAY_NAME, // 直接包含该文件的文件夹名

MediaStoreImagesMediaDISPLAY_NAME, // 文件名

MediaStoreImagesMediaDATA, // 绝对路径

"count("+MediaStoreImagesMedia_ID+")"//统计当前文件夹下共有多少张

};

//这种写法是为了进行分组查询,详情可参考>

SDK 中有专门取SD卡路径的静态方法

public String getSDPath(){

File sdDir = null;

boolean sdCardExist = EnvironmentgetExternalStorageState()

equals(AndroidosEnvironmentMEDIA_MOUNTED); //判断sd卡是否存在

if (sdCardExist) {

sdDir = EnvironmentgetExternalStorageDirectory();//获取跟目录

}

return sdDirtoString();

}

不要写死路径

以上就是关于Android Bitmap 与 Drawable之间的区别和转换全部的内容,包括:Android Bitmap 与 Drawable之间的区别和转换、如何获取相册路径、android如何从SD卡读取图片文件转化为bitmap等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9506961.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存