使用this库,我正在尝试检索已编辑的图像并将其放在另一个活动的ImageView上...
调用函数将已编辑的drawable设置为另一个ImageView:
Log.d("eiDR",gImageView.getDrawable().toString());
PreviewPostal pp = new PreviewPostal();
pp.setImage(gImageView.getDrawable());
将已编辑的drawable设置为另一个ImageView(在PreviewPostal活动中):
public void setImage(Drawable dr){
Log.d("ppDR",dr.toString());
//ImageView iv = (ImageView)this.findViewById(R.id.imageForTest);
//iv.setImageDrawable(dr);
}
这会记录相同的drawable,但如果我取消注释这两行,它会给我一个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);
答案 0 :(得分:1)
你不能简单地这样做。首先让我解释一下这条线的含义。
ImageView iv = (ImageView)this.findViewById(R.id.imageForTest);
这只是意味着,您正在尝试引用当前活动中存在的元素。也就是说,您可以使用 setContentView 提供的布局。所以现在当android在当前布局中搜索这个ImageView时,显然它不会存在并且会抛出空指针异常。
您实际需要做的是,通过某种方式保存Drawable,稍后当您传递给该活动时,您必须将Drawable设置为ImaegView。
请参阅此链接,了解如何将Drawable转换为位图并使用putExtra将其发送到下一个活动。
答案 1 :(得分:1)
选项:
1.您可以启动活动以获得结果和被调用活动的结果,只需将drawable的byte []返回给调用活动
2.在SD卡上有一个预定位置,然后在该位置保存来自被叫活动的图像并从呼叫活动访问相同位置
3.编写一个实现 serializable 的简单pojo。然后为结果启动第二个活动,并在第二个活动的结果上填充pojo并将其从被调用的活动返回到调用活动。
我希望这有帮助..