如何将图像从一个活动转移到另一个活动?

时间:2016-12-24 10:16:37

标签: android

如何使用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();
    }
});

3 个答案:

答案 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");