如何将图像从一项活动发送到另一项活动?

Posted

技术标签:

【中文标题】如何将图像从一项活动发送到另一项活动?【英文标题】:how to send image from one activity to other? 【发布时间】:2013-03-24 19:32:06 【问题描述】:

我需要像发送字符串“title”一样发送一个imageview,但我不能,我怎样才能将一个imageview(R.drawable.image)从mainactivity发送到secondactivity?

谢谢

主要活动

public void NewActivity(View view) 
Intent intent = new Intent(this, SecondActivity.class); 
intent.putExtra("title", getString(R.string.title));    
startActivity(intent); 
 

第二次活动

@Override 
public void onCreate(Bundle bundle) 
 

super.onCreate(bundle); 
setContentView(R.layout.pantalla); 
Bundle extras = getIntent().getExtras(); 
if (extras == null) 
 
return; 
 
String title = extras.getString("title"); 

TextView textview = (TextView)findViewById(R.id.titulo); 

textview.setText(title); 

【问题讨论】:

您是要发送ImageView,还是只是图片本身? 【参考方案1】:

解决方案 1:(对于非 drawable 资源)

您可以将路径文件名作为字符串发送。就像您示例中的 "title" 一样。

如果您在使用 ImageView 的文件路径时遇到问题。 Show Image View from file path?


解决方案 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.pantalla); 
    Bundle extras = getIntent().getExtras(); 
    if (extras == null) 
     
        return; 
     
    int res = extras.getInt("resourseInt"); 

    ImageView view = (ImageView) findViewById(R.id.something); 

    view.setImageResourse(res); 

【讨论】:

【参考方案2】:

在您的应用程序的所有活动中都可以使用可绘制对象。 您可以直接访问它们,而不是将它们从一个活动发送到另一个活动。

【讨论】:

【参考方案3】:

保存文件路径

intent.putExtra("imagePath", filepath); 

通过意图发送图像并使用

String image_path = getIntent().getStringExtra("imagePath");
Bitmap bitmap = BitmapFactory.decodeFile(image_path);
myimageview.setImageDrawable(bitmap);

【讨论】:

【参考方案4】:

把图片的路径放到putExtra中。不要发送位图可能很重

【讨论】:

以上是关于如何将图像从一项活动发送到另一项活动?的主要内容,如果未能解决你的问题,请参考以下文章

如何将字符串从一项活动发送到另一项活动?

将值从一项活动更新到另一项活动

无法将位置从一项活动返回到另一项活动

java 将一项活动的数据发送到另一项活动

如何在 Android Java 中将 1000 多个项目列表从一个 Activity 发送到另一个?

如何将数据从一项活动传递到多项活动?