如何将图像文件从一个活动发送到另一个活动?
在本文中,我们将把图像从一个活动发送到另一个活动。我们将使用putExtra发送图像,我们将使用bundle来获取从前一个活动发送的数据,然后我们将显示接收到的图像。
分步实施
第 1 步:创建一个新项目
要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。请注意,选择Java作为编程语言。
步骤 2:使用 activity_main.xml 文件
导航到app > res > layout > activity_main.xml并将以下代码添加到该文件中。下面是activity_main.xml文件的代码。
XML
Java
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
Button sendimage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// initialise the layout
sendimage = findViewById(R.id.sendimagei);
sendimage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// add the image in putExtra
// and send the data in next activity
Intent sendimage = new Intent(MainActivity.this, SecondActivity.class);
sendimage.putExtra("image", R.drawable.circle);
startActivity(sendimage);
}
});
}
}
XML
Java
import android.os.Bundle;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
public class SecondActivity extends AppCompatActivity {
ImageView imageView;
int imagevalue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
// initialise the layout
imageView = findViewById(R.id.images);
// check if any value sent from previous activity
Bundle bundle = getIntent().getExtras();
// if bundle is not null then get the image value
if (bundle != null) {
imagevalue = bundle.getInt("image");
}
imageView.setImageResource(imagevalue);
}
}
第 3 步:使用MainActivity。 Java文件
转到主活动。 Java文件,参考如下代码。下面是MainActivity的代码。 Java文件。代码中添加了注释以更详细地理解代码。
Java
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
Button sendimage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// initialise the layout
sendimage = findViewById(R.id.sendimagei);
sendimage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// add the image in putExtra
// and send the data in next activity
Intent sendimage = new Intent(MainActivity.this, SecondActivity.class);
sendimage.putExtra("image", R.drawable.circle);
startActivity(sendimage);
}
});
}
}
第 4 步:创建另一个新活动
参考这篇文章并将活动命名为SecondActivity。转到activity_second.xml文件并参考以下代码。下面是activity_second.xml文件的代码。
XML
第 5 步:使用SecondActivity。 Java文件
转到第二个活动。 Java文件,参考如下代码。下面是SecondActivity的代码。 Java文件。代码中添加了注释以更详细地理解代码。
Java
import android.os.Bundle;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
public class SecondActivity extends AppCompatActivity {
ImageView imageView;
int imagevalue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
// initialise the layout
imageView = findViewById(R.id.images);
// check if any value sent from previous activity
Bundle bundle = getIntent().getExtras();
// if bundle is not null then get the image value
if (bundle != null) {
imagevalue = bundle.getInt("image");
}
imageView.setImageResource(imagevalue);
}
}
输出: