java - BitmapFactory类型中的方法decodeResource(Resources, int)不适用于Android中的参数(Resources, String)

标签 java android bitmap drawable

目前我有 slider 图像,其中每个图像都放置在单个幻灯片页面上,其顶部有“共享”按钮。如果单击共享按钮,当前页面图像应通过电子邮件和彩信共享,为此,我首先需要将图像从可绘制图像转换为位图。 arg_object.getString("image")) 是图像的 url。我能够转换单个图像,但不能转换整体图像。请帮助我。

这是我的代码

Bitmap bbicon = { BitmapFactory.decodeResource(this.cordova.getActivity().getResources
                    (),"R.drawable."+arg_object.getString("image"))};

但是在decodeResource上我收到错误BitmapFactory类型中的方法decodeResource(Resources, int)不适用于参数(Resources, String)

最佳答案

我不确定我是否理解正确,但是:

  • 如果在 arg_object.getString("image") 中您有资源名称,则没有直接的方法来加载位图,但您仍然可以设法以动态方式获取它。

    首先通过名称解析资源标识符,如下所示:

    String name = arg_object.getString("image");
    String defType = "drawable"
    String defPackage = "com.android.yourpackage";
    int drawableId = getActivity().getResources().getIdentifier( name , defType, defPackage );
    

    现在您已经有了资源 ID,您可以使用 one of the BitmapFactory methods 轻松创建位图:

    Bitmap bitmap = BitmapFactory.decodeResource( getActivity().getResources(), drawableId );
    
  • 如果您在 arg_object.getString("image") 中拥有图像 uri,则只需使用:

    Bitmap bitmap = BitmapFactory.decodeFile( arg_object.getString("image") );
    

关于java - BitmapFactory类型中的方法decodeResource(Resources, int)不适用于Android中的参数(Resources, String),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19831124/

相关文章:

java - Eclipse 继续运行该类但不打印任何内容

javascript - 从位图中获取像素

Android - ImageView 内的 Canvas drawLine

android - SQLite 数据库升级

java - 如何使用serversocket发送位图

java - JVM 在 6.0_26-b03 中崩溃

java - 如何在 Java 中解析基本查询(类似于 Google 数据)?

java - 如何更改 Controller 中的字段以进行测试?

android - kotlin-非 Activity 类的访问 View

java - 反序列化错误时使 Firestore 缓存无效