如何使用ImageView
将图像从一个活动转移到另一个活动?这是我试过的代码:
img1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getBaseContext(),TrialVersion.class);
intent.putExtra("design1",R.drawable.design1);
startActivity(intent);
finish();
}
});
答案 0 :(得分:2)
解决方案1:
将Drawable转换为Bitmap并将其发送到Another Activity。
Bitmap bitmap = ((BitmapDrawable)d).getBitmap();
发送,
intent.putExtra("Bitmap", bitmap);
要抓取,
Bitmap bitmap = (Bitmap)this.getIntent().getParcelableExtra("Bitmap");
解决方案2:(适用于drawable
轻松轻松的方式)
发送资源整数值,如:
主要活动
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("resourseInt", R.drawable.image);
startActivity(intent);
第二次活动
@Override
public void onCreate(Bundle bundle)
{
super.onCreate(bundle);
setContentView(R.layout.yot_layout);
Bundle extras = getIntent().getExtras();
if (extras == null) {
return;
}
int res = extras.getInt("resourseInt");
ImageView view = (ImageView) findViewById(R.id.something);
view.setImageResourse(res);
}
答案 1 :(得分:0)
没有。这不是Android处理Image的方式。您不希望通过Intent将Image传递给另一个活动。 Intent仅用于传递小而简单的数据。
您可以将图像保存到磁盘并将路径传递给另一个活动。或者,您可以将图像保存在像Application这样的全局对象中,然后通过此全局对象从另一个Activity访问该图像。
第二种方式存在风险,因为如果不仔细而正确地进行,可能会导致内存泄漏。
通常,图像是从本地磁盘或网络加载的。在这种情况下,您可能需要考虑一些像Fresco这样的图像库,并使用缓存从另一个Activity再次加载图像。
答案 2 :(得分:0)
您可以使用以下代码:
Integer drawable = getIntent().getIntExtra("design1");