Android开发——Drawable与Bitmap知识
2023-02-18 16:38:16 时间
从资源中获得drawable
Drawable drawable = getResources().getDrawable(R.drawable.xxx);
drawable转换bitmapdrawble
BitmapDrawable bitmapdrawable = (BitmapDrawable) getResources().getDrawable(R.drawable.xxx);
drawble转换为bitmap
-
第一种方式
实际上,先是把drawable转换为bitmapdrawable,再将bitmapdrawable转换为bitmap,比较简单
Bitmap bitmap = bitmapdrawable.getBitmap();
-
第二种方式
需要重新绘图,较为麻烦,不过有些需要重绘,大多数都可以使用第一种,所以,还是推荐第一种(懒癌患者推荐)
public static Bitmap drawableToBitmap(Drawable drawable) { // 取 drawable 的长宽 int w = drawable.getIntrinsicWidth(); int h = drawable.getIntrinsicHeight(); // 取 drawable 的颜色格式 Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565; // 建立对应 bitmap Bitmap bitmap = Bitmap.createBitmap(w, h, config); // 建立对应 bitmap 的画布 Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, w, h); // 把 drawable 内容画到画布中 drawable.draw(canvas); return bitmap; }
bitmap转换为drawable
-
第一种方式
Drawable drawable = new BitmapDrawable(bitmap);
-
第二种方式
BitmapDrawable bd= new BitmapDrawable(getResource(), bitmap);
PS:bitmapdrawable是drawable的子类,可以直接使用drawable中的方法
相关文章
- 论文解读(DGB)《Self-supervised Graph Representation Learning via Bootstrapping》
- 论文解读(BGRL)《Large-Scale Representation Learning on Graphs via Bootstrapping》
- 浅谈android端的字符串加密
- Android tint颜色渲染
- Android字体渐变效果
- 关于airtest群控制ios
- BootstrapTable 动态显示/隐藏某一行
- Android Studio 中 添加作者 时间 之类的 注释
- 解决android studio 无法更新插件的问题(某些)
- android studio 首字母提示 设置 大小写敏感
- android studio logcat 打印不出信息
- 使用android自带的SwipeRefreshLayout实现下拉刷新
- android studio 导入第三方库的记录
- android studio 图片资源的放置位置,你中枪了吗?
- android开发艺术探索学习 之 Activity的生命周期
- android开发艺术探索学习 之 结合Activity的生命周期了解Activity的LaunchMode
- Android艺术开发探索学习 之 测量view的宽高 以及 动态设置View的位置
- Android中的DatePicker颜色处理以及其他属性介绍
- Android Studio 使用中的相关“Bug”记录
- 以爬虫工程师身份谈谈Android端的信息安全