无法在 Android 中将矢量可绘制对象转换为位图可绘制对象

2024-04-26

我正在尝试将位图转换为字节数组,其中我将矢量可绘制图像转换为位图,然后将其转换为字节数组,但是当我打开应用程序时,它向我显示错误类强制转换异常无法将矢量可绘制图像转换为位图可绘制。

 Resources res = getResources();
   Drawable drawable = res.getDrawable(R.drawable.ic_motorcycle_black);
    if (drawable != null) {
        drawable.setColorFilter(0xffff0000, PorterDuff.Mode.MULTIPLY);
    }
    Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
    final byte[] bike = stream.toByteArray();

Error:

  Caused by: java.lang.ClassCastException: android.graphics.drawable.VectorDrawable cannot be cast to android.graphics.drawable.BitmapDrawable
                                                                  at codingtown.coconut.otherexpense.activity.AddNewExpenseCategoryActivity.intialize(AddNewExpenseCategoryActivity.java:82)
                                                                  at codingtown.coconut.otherexpense.activity.AddNewExpenseCategoryActivity.onCreate(AddNewExpenseCategoryActivity.java:67)
                                                                  at android.app.Activity.performCreate(Activity.java:6092)
                                                                  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1112)

你可以试试这个。对我来说效果很好。

private BitmapDescriptor bitmapDescriptorFromVector(Context context, @DrawableRes  int vectorDrawableResourceId) {
    Drawable background = ContextCompat.getDrawable(context, R.drawable.ic_map_pin_filled_blue_48dp);
    background.setBounds(0, 0, background.getIntrinsicWidth(), background.getIntrinsicHeight());
    Drawable vectorDrawable = ContextCompat.getDrawable(context, vectorDrawableResourceId);
    vectorDrawable.setBounds(40, 20, vectorDrawable.getIntrinsicWidth() + 40, vectorDrawable.getIntrinsicHeight() + 20);
    Bitmap bitmap = Bitmap.createBitmap(background.getIntrinsicWidth(), background.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    background.draw(canvas);
    vectorDrawable.draw(canvas);
    return BitmapDescriptorFactory.fromBitmap(bitmap);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在 Android 中将矢量可绘制对象转换为位图可绘制对象 的相关文章

  • java.lang.IllegalStateException:无法为 X 创建层 - 使用硬件层时

    我在自定义视图上使用硬件层 以便在为其 Alpha 制作动画时获得更好的性能 在我的崩溃记者上看到这次崩溃 Fatal Exception java lang IllegalStateException Unable to create l
  • 构建 gradle 系统应用程序作为 AOSP 构建的一部分

    我有一个基于 AOSP 的自定义 ROM 并且正在开发一个系统应用程序 该应用程序在 ROM 构建期间打包 就像任何其他系统应用程序一样 是否可以将此应用程序切换为 gradle 样式应用程序 并在 AOSP 构建期间使用 gradle 构
  • 如何在 Android 中从服务器检索数据时更新滚动的 ListView?

    目前 我正在使用 AsyncTask 来处理 Http 连接并以 JSON 格式检索数据 加载所有数据很简单 但会消耗太多时间 因此我决定使用一次加载 10 个项目LIMIT OFFSET mysql 接下来我设置事件onScroll为我的
  • 改造如何打印响应 JSON

    我正在使用 Retrofit 并且想要访问从服务器返回的 JSON 响应 有人可以告诉我吗 谢谢 如果您只想查看出于调试目的的响应 只需在改造中打开调试并查看日志即可 它是这样的 restAdapter setDebuggingEnable
  • 屏幕关闭时接近传感器不起作用?

    Hy 我有一个与接近传感器相关的问题 当我将手指放在上面时 我想关闭屏幕 当我拿开手指时 我想打开屏幕 我成功地完成了关闭部分 但是当我将手指从传感器上移开时 它似乎没有执行 onSensorChanged 方法 这是它的代码 public
  • Android 中如何获取帧

    实际上 我需要从视频中获取所有帧 但在使用 Mediametadataretriever 缩略图 时间戳获取帧时 我经常重复获取第一帧 然后获取特定时间帧 我通过更改所有 GetFrameAtTime options 尝试了很多修复 但仍然
  • AutoCompleteTextView sqlite填充异常

    我的第一篇文章只有不到一半的文字 因此是第二篇 完整的 文章 我正在开发一个测试应用程序 使用 sqlite 填充两个 AutoCompleteTextView 我正在使用汽车制造商和模型进行测试 自动完成的 使自动完成 模型自动完成 ma
  • Android 中无网络、断线的情况如何处理?

    我有一个应用程序需要连接到 Internet 才能执行某些操作 但当没有可用的 Internet 时 它会崩溃 我读到 如果没有互联网 我需要使用 try catch 括号 我尝试使用它 正如您在 AsyncTask 中看到的那样 但它不起
  • 无法从 AsyncTask 启动服务

    我正在尝试从 AsyncTask 启动服务 但看不到它的启动 我还在清单文件中添加了服务 这里是代码 protected Integer doInBackground Void values throws InterruptedExcept
  • Android:Enter 或 Tab 键仍然使用 jetpack compose 在密码输入字段中输入值

    当我输入或 Tab 键时 仍然使用 jetpack compose 在密码输入字段中输入值 下面是我的代码片段 val focusRequester FocusRequester createRefs TextField value tex
  • Android 权限 BIND_NOTIFICATION_LISTENER_SERVICE 不起作用

    我正在 React Native 应用程序中工作 我正在努力在 Android 中使用Notification Services BIND NOTIFICATION LISTENER SERVICE 我正在尝试使用读取传入的通知Notifi
  • Android快速查找网络上所有本地设备

    我正在制作一个 Android 应用程序 需要能够查看本地网络设备 名称或 IP 目前我可以扫描网络并找到设备的本地IP 然而 由于时间太长 用户在搜索网络时会看到黑屏加载几分钟 这是我当前正在使用的代码 private ArrayList
  • 如何在 Android RecyclerView 中显示一组项目的日期/日期

    您好 我在 JSONArray 中获取数据如下 chatArray msg id 193 user id 15235 first name Vishal user name vishal13 message twilio chat time
  • LibGDX - 着色器适用于桌面但不适用于 Android

    我编写了一个简单的程序 可以在 3D 环境中渲染球体 并根据球体周围的四个光源为其着色 当我在桌面上运行该程序时 它工作得很好 但在 Android 设备上 球体只是纯色的 下面是一些图片来说明我正在谈论的内容 gt Desktop gt
  • org.apache.http.entity.FileEntity 在 Android 6 (Marshmallow) 中已弃用

    我正在将应用程序升级到 API 23 其中org apache http已弃用 我当前 已弃用 的代码如下所示 HttpClient httpClient new DefaultHttpClient File file new File a
  • 读取Android文件系统中的所有文件

    我正在编写一个Android mediaPlayer应用程序 所以我想扫描整个手机上的所有文件 即sd卡和手机内存 我可以从 SD 卡读取数据 但不能读取它的根目录 也就是说 我可以从路径中读取 sdcard folder 它工作得很好 但
  • 如何默认显示带有手动(键盘)输入的时间选择器对话框?

    时间选择器对话框默认显示循环计时以选择日期和时间 相反 它需要默认显示键盘输入来选择日期和时间 在以圆形样式显示时间选择器对话框时 它具有键盘图标 可将圆形样式更改为手动输入样式 Android Oreo 操作系统设备可使用此功能 如何在支
  • 在Fragment中第一次调用时SharedPreferences为空

    我有一个示例 Android 应用程序 根据位置 邮政编码 和设置 SharedPreference 中设置的温度单位 该应用程序显示 7 天的天气 当应用程序第一次获取温度并检查 SharedPreference 中设置的温度单位时 它似
  • onDataChanged() 在 Android Wear 上未被调用

    我试图使用数据项将一些字符串发送到我的穿戴设备 但我的穿戴设备似乎从未收到任何信号 因为 onDataChanged 从未被调用 我什至设置了一个时间戳 以确保每次发送数据时始终不同 有没有特定的方法我必须将应用程序安装到两台设备上才能使其
  • 如何以编程方式获取 Android 项目(非设备)中支持的语言列表

    在一些项目中我们可能会出现这种情况 如何以编程方式获取此应用程序 项目支持的语言列表 结果我需要这样的字符串数组 en bg bs da de hr it nl pl pt sk sr tr 当然 我可以通过键入它来对其进行硬编码 但我认为

随机推荐

  • Tic-Tac-Toe AI:如何制作树?

    在制作井字游戏机器人时 我在尝试理解 树 时遇到了巨大的障碍 我理解这个概念 但我不知道如何实现它们 有人可以向我展示一个如何为这种情况生成树的示例吗 或者关于生成树的好教程 我想最困难的部分是生成部分树 我知道如何实现生成整棵树 但不知道
  • ofstream 不适用于 Windows 7 隐藏文件

    我意识到ofstream不适用于 Windows 7 隐藏文件 这是快速测试代码 include
  • 更改 UINavigationController 导航栏的颜色

    我正在尝试使用以下方法更改 UINavigationController 导航栏的颜色 self navigationController navigationBar tintColor UIColor brownColor 在下面给出的代
  • 使用 Xcode 6.4 的通用自定义 iOS 框架

    我使用 Xcode 6 创建了一个自定义 iOS 框架 我尝试了许多脚本来使框架通用 对于模拟器和设备 但它们都不适合我 请建议我一种为 iOS 创建自定义通用框架的方法Xcode 6 要通过终端将两个二进制文件合并为通用二进制文件 首先编
  • Android 将原始字节记录到 WAVE 文件中以进行 Http Streaming

    所以我正在使用AudioRecord从 Android 记录原始字节并将其写入 wav 文件 由于 Android 不支持此功能 我必须使用以下代码手动编写 wav 文件头 randomAccessWriter writeBytes RIF
  • 如何检查 servlet 中的 sessionId 是否有效 (java)

    我在我的 Web 应用程序中维护 sessionid 和 HttpSession 对象的映射 我使用 HttpSessionListener 从地图中填充或删除会话 当我的网络服务器崩溃 宕机并恢复时 我需要一种方法来检查提交的 sessi
  • Android 显示全屏滑块图像

    我有一个在 Android 屏幕上显示的 gridview 图像 我的要求是滑动全屏图像 这是我的代码 图像适配器 public class ImageAdapter extends BaseAdapter private Context
  • 与 WiX 3.0 一起安装 WiX 3.5

    是否可以同时安装 WiX 3 0 和 3 5 如果我在安装 3 0 后安装 3 5 它会删除 3 0 文件 如果我尝试在 3 5 之后安装 3 0 它会告诉我已经安装了较新的版本 我正在从 VS 2008 迁移到 VS 2010 因此我的应
  • 获取已安装应用程序的位置 vb.net

    我在vb net上发布了一个应用程序 用户将能够将应用程序安装在计算机上他们选择的任何位置 或者可能不是他们选择的任何位置 而是默认位置 我如何以编程方式获取用户安装应用程序的位置 换句话说 我需要应用程序知道它从哪里运行 我如何检测到这一
  • Android 使卷轴看起来在旋转的最佳方法

    我正在为 Android 制作一个简单的水果机 老虎机 我在想如何才能让 卷轴 看起来在旋转 然后逐渐停止 我的想法是有一个环绕声 然后在顶部随机生成图像 并沿着屏幕向下移动 只有部分图像可见 任何有关想法或如何完成的帮助都将非常棒 我在这
  • Scala 中的 Reader monad:返回、本地和序列

    我正在使用ReaderScala 中的 monad 由scalaz https github com scalaz scalaz图书馆 我对这个单子很熟悉正如 Haskell 中定义的 https wiki haskell org All
  • C:函数指针转换到底是什么? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 假设有人想要创建一个可以容纳多个不同类型的函数指针的数组 他将如何去做呢 也许空指针数组可以工作 事实证明 不行 因为为了使用存储在空指针中
  • 在 Chrome 扩展程序中访问 Chrome 设置

    我正在寻找开发一个 chrome 扩展程序 可以访问 wrench gt 选项 gt 引擎盖下的内容设置 那可能吗 我当时正在看API page http code google com chrome extensions api inde
  • 使用 Memcache 缓存 Matplotlib(不会 Pickle)

    我有一个图表 渲染需要 3 秒 然后可以从所述图表中添加一些内容来制作子图表 我想缓存主图表中的轴 以便稍后在渲染子图表时检索并修改它 我怎样才能克服这个错误 这是一个示例测试代码 import pylibmc cache pylibmc
  • 无法很好地理解 spring-mvc 的`@Autowired HttpServletRequest`

    在我们的 Spring 应用程序中 我们使用HttpServletRequest有两种方式 这里的代码是简化的 看起来没什么意义 在控制器中 RequestMapping value hello method RequestMethod G
  • 在保持元素/样式/脚本关系的同时缩小整个目录?

    目前是否存在可以缩小整个项目目录的解决方案 更重要的是 是否存在任何可以缩短类名 id 并在所有文档中保持一致的解决方案 可以扭转这个局面的东西 索引 html div class fooBar div 样式 css fooBar Comm
  • @font-face 字体不起作用

    我正在尝试从本地存储中获取一种可以使用的字体 font face font family const src url const ttf fp title1 font family const trebuchet ms font size
  • WPF - 将鼠标悬停在另一个元素上时隐藏元素

    网格中有一些元素 我想要的只是当鼠标悬停在矩形上时显示 隐藏按钮
  • 在 HTML5 websocket 服务器中切割媒体流,用于基于网络的聊天/视频会议应用程序

    我们目前正在开发一个聊天 文件共享 视频会议应用程序使用 HTML5 websocket https stackoverflow com questions 4220672 implementing webbased real time v
  • 无法在 Android 中将矢量可绘制对象转换为位图可绘制对象

    我正在尝试将位图转换为字节数组 其中我将矢量可绘制图像转换为位图 然后将其转换为字节数组 但是当我打开应用程序时 它向我显示错误类强制转换异常无法将矢量可绘制图像转换为位图可绘制 Resources res getResources Dra