0

使用这个库,我试图检索编辑后的图像并将其放在另一个活动的 ImageView 上......

调用函数将编辑后的drawable设置为另一个ImageView:

Log.d("eiDR",gImageView.getDrawable().toString());
PreviewPostal pp = new PreviewPostal();
pp.setImage(gImageView.getDrawable());

将编辑后的drawable设置为另一个ImageView(在PreviewPostal Activity中):

public void setImage(Drawable dr){
    Log.d("ppDR",dr.toString());
    //ImageView iv = (ImageView)this.findViewById(R.id.imageForTest);
    //iv.setImageDrawable(dr);
}

这记录了相同的可绘制对象,但如果我取消注释这两行,它会给我一个 NPE。

注意:活动包装在 TabHost 中(每个活动都是一个具有自己布局的选项卡)。

提前致谢!

编辑:我如何添加活动(标签):

mTabHost = getTabHost();

// Tab Editar Imagem
TabSpec editImageSpec = mTabHost.newTabSpec("Imagem");
editImageSpec.setIndicator(setTabIndicator(getResources().getDrawable(R.drawable.tab_editimage_icon)));
Intent editImageIntent = new Intent(this, EditImage.class);
editImageIntent.putExtra("imagem", getIntent().getStringExtra("imagem"));
editImageSpec.setContent(editImageIntent);
4

2 回答 2

1

你不能简单地做到这一点。首先让我解释一下这条线的含义。

ImageView iv = (ImageView)this.findViewById(R.id.imageForTest);

这只是意味着,您正在尝试引用当前活动中存在的元素。也就是说,您可以使用setContentView提供的布局。所以现在当 android 在当前布局中搜索这个 ImageView 时,显然它不会存在并抛出一个空指针异常

您实际上需要做的是,通过某种方式保存 Drawable,然后当您传递给该活动时,您必须将 Drawable 设置为该 ImaegView。

请参阅此链接,了解如何将 Drawable 转换为位图并使用 putExtra 将其发送到下一个活动。

https://stackoverflow.com/a/9033864/603744

于 2012-06-08T11:28:42.877 回答
1

选项:

1.您可以为结果启动活动,并且在被调用活动的结果上只需将可绘制的字节[]返回给调用活动

2.在SD卡上有一个预定义的位置,然后将被调用活动的图像保存在该位置,并从调用活动访问相同的位置

3.编写一个实现可序列化的简单pojo 。然后为结果启动第二个活动,并根据第二个活动的结果填充pojo并将其从被调用活动返回到调用活动。

我希望这有帮助..

于 2012-06-08T12:19:47.740 回答