为了账号安全,请及时绑定邮箱和手机立即绑定

从一个活动传递图像另一个活动

从一个活动传递图像另一个活动

森林海 2019-08-05 15:17:02
从一个活动传递图像另一个活动SO上也有类似的问题,但没有一个对我有用。我想在Activity1中获取单击的图像并在Activity2中显示它。我正在获取点击图像的图像ID,如下所示:((ImageView) v).getId()并通过意图将其传递给另一个活动。在第二个活动中,我使用图像ID如下:imageView.setImageResource(imgId);我在两个活动中记录了值og image id并且它是相同的。但我得到以下异常:android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x12/d=0x0 a=2 r=0x7f050000}我想这里的问题getId()是返回Id ImageView而不是它的源图像。所有这些图像都存在于drawable。任何帮助赞赏。
查看完整描述

3 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

这不行。你必须这样试试。

将ImageView的DrawingCache设置为true,然后将背景保存为Bitmap并通过putExtra传递。

image.setDrawingCacheEnabled(true);Bitmap b=image.getDrawingCache();Intent i = new Intent(this, nextActivity.class);i.putExtra("Bitmap", b);startActivity(i);

在你的下一个活动中,

Bitmap bitmap = (Bitmap) intent.getParcelableExtra("Bitmap");imageView.setImageBitmap(bitmap);


查看完整回答
反对 回复 2019-08-05
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

DrawableApplication类中定义静态变量,然后在第一个活动中设置图像可绘制数据,然后在下一个活动中从您在Application类中定义的静态变量中获取数据。

public class G extends Application {
   public static Drawable imageDrawable;
   ...}

第一项活动:

G.imageDrawable = imageView.getDrawable();

SecondActivity:

imgCamera.setImageDrawable(G.imageDrawable);

并在onDestroy中:

@Overrideprotected void onDestroy() {
    G.imageDrawable = null;
    super.onDestroy();}

注意:您必须Application在清单中定义您的类:

<application
        android:name=".G"
        ...></application>


查看完整回答
反对 回复 2019-08-05
  • 3 回答
  • 0 关注
  • 486 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号