【问题标题】:How to get an image from one activity to another?如何将图像从一项活动获取到另一项活动?
【发布时间】:2016-12-24 10:16:37
【问题描述】:

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

【问题讨论】:

标签: android


【解决方案1】:

解决方案 1:

将您的 Drawable 转换为 Bitmap 并将其发送到另一个 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); 
}

【讨论】:

  • @paru,欢迎您 - 您可以将此答案视为正确答案,谢谢:)
  • @paru 如果没问题,你应该勾选这个答案而不是 cooment
【解决方案2】:

没有。这不是 Android 处理 Image 的方式。您不想通过 Intent 将图像传递给另一个活动。 Intent 仅用于传递小而简单的数据。

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

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

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

【讨论】:

    【解决方案3】:

    你可以这样使用代码:

    Integer drawable = getIntent().getIntExtra("design1");
    

    【讨论】:

      猜你喜欢
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 2012-01-24
      • 1970-01-01
      • 1970-01-01
      • 2016-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多