2016-12-24 97 views
1

如何使用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

检查这个http://stackoverflow.com/questions/12908048/passing-bitmap-between-two-activities –

+0

使用'getIntent('和' getExtras()函数。 – AlphaQ

回答

1

解决方案1:

将您绘制对象为位图,并将其发送到另一个活动。

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); 
} 
+0

谢谢你的谢谢 – paru

+0

@paru,你的欢迎 - 你可以检查这个答案作为正确的答案,而不是谢谢:) – Saeid

+0

它完美的作品 – paru

0

号这不是处理图片Android的方式。您不想通过Intent将图像传递给其他活动。意图只是用来传递小而简单的数据。

您可以将图像保存到磁盘并将路径传递给另一个活动。或者您可以将图像保存在像Application这样的全局对象中,然后通过此全局对象从另一个Activity访问该图像。

第二种方式是有风险的,因为如果你不仔细和正确地做,它可能会导致内存泄漏。

通常情况下,图像是从本地磁盘或网络加载的。在这种情况下,您可能需要考虑像Fresco这样的图像库,并使用缓存从另一个Activity再次加载图像。

0

您可以使用这样的代码:)

Integer drawable = getIntent().getIntExtra("design1"); 
相关问题