目前我有滑块图片,其中每张图片都放在单张幻灯片页面上,其上方有“分享”按钮。如果点击共享按钮当前页面图像应该通过电子邮件和mms共享,为此首先我需要将图像从drawable转换为位图。 arg_object.getString(“image”))是图像的url。我能够获得转换单个图像但不能整体转换。请帮帮我。
继承我的代码
Bitmap bbicon = { BitmapFactory.decodeResource(this.cordova.getActivity().getResources
(),"R.drawable."+arg_object.getString("image"))};
但是在decodeResource上我收到错误为The method decodeResource(Resources, int) in the type BitmapFactory is not applicable for the arguments (Resources, String)
答案 0 :(得分:1)
我不确定我理解得对,但是:
如果在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") );
答案 1 :(得分:0)
应该是
int resourceID = getActivity().getResources().getIdentifier(arg_object.getString("image"), "drawable",getActivity().getPackageName());
Bitmap bbicon = BitmapFactory.decodeResource(getActivity().getResources(),resourceID);
第二个参数是id,它是一个int值。但你有"R.drawable."+arg_object.getString("image")
使它成为一个字符串。我猜你会得到arg_object.getString("image")
的名字,你可以获得上面的资源ID。
了解更多信息
http://developer.android.com/reference/android/graphics/BitmapFactory.html
public static Bitmap decodeResource (Resources res, int id)
Added in API level 1
Synonym for decodeResource(Resources, int, android.graphics.BitmapFactory.Options) will null Options.
Parameters
res The resources object containing the image data
id The resource id of the image data
Returns
The decoded bitmap, or null if the image could not be decoded.
答案 2 :(得分:0)
如果imageView是带有图像资源的ImageView,那么
BitmapDrawble bd =(BitmapDrawable)imageView.getDrawable();
Bitmap bitmap = bd.getBitmap();