Android 如何向其他活动显示消息和照片
我正在尝试创建一个简单的消息应用程序,向其他活动发送文本和照片,但我只知道如何显示文本,你能教我如何显示照片吗?我只是一个新的程序员,我想学习,所以我希望你们能帮助我:) 这是我关于发送活动的代码Android 如何向其他活动显示消息和照片,android,android-studio,Android,Android Studio,我正在尝试创建一个简单的消息应用程序,向其他活动发送文本和照片,但我只知道如何显示文本,你能教我如何显示照片吗?我只是一个新的程序员,我想学习,所以我希望你们能帮助我:) 这是我关于发送活动的代码 public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView (R.layout.main); button =
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView (R.layout.main);
button = (Button) findViewById(R.id.btn_attach_pic);
imageView = (ImageView) findViewById(R.id.btn_img_view);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent camera_intent = new Intent (MediaStore.ACTION_IMAGE_CAPTURE);
File file = getFile();
camera_intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(camera_intent, CAM_REQUEST);
}
});
}
public void sendMessage (View view){
message_text = (EditText) findViewById(R.id.editText);
String message = message_text.getText().toString();
Intent intent = new Intent (this, NextActivity.class);
intent.putExtra(MESSAGE_KEY,message);
startActivity (intent);
}
private File getFile(){
File folder = new File("sdcard/UHelp_images");
if(!folder.exists())
{
folder.mkdir();
}
File image_file = new File(folder,"temp.jpg");
return image_file;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
String path = "sdcard/UHelp_images/temp.jpg";
imageView.setImageDrawable(Drawable.createFromPath(path));
}
这是在接收课上
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
String message = intent.getStringExtra (MESSAGE_KEY);
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
setContentView(textView);
您只需使用以下命令从其他活动加载它:
File imgFile = new File("sdcard/UHelp_images/temp.jpg");
if(imgFile.exists()){
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
ImageView myImage = (ImageView) findViewById(R.id.imageviewTest);
myImage.setImageBitmap(myBitmap);
}
希望这对您有所帮助。您还应该传递图像的
可绘制
或路径
,就像您使用putExtras()处理邮件一样
然后在另一个活动中
只需使用StringKey
即可获得可绘制的
或路径
,您可以根据需要使用它
编辑
我不确定这是否是正确的路径
,但如果是,您可以传递此字符串
,然后从该路径
获取图像
,执行此操作imageView.setImageDrawable(Drawable.createFromPath(path))代码>或者甚至您可以传递该Drawable
。。。并将其用于其他活动
sdcard/UHelp_images/temp.jpg
将图像路径与文本消息一起发送,如以下代码所示:
public void sendMessage (View view){
message_text = (EditText) findViewById(R.id.editText);
String message = message_text.getText().toString();
Intent intent = new Intent (this, NextActivity.class);
intent.putExtra(MESSAGE_KEY,"sdcard/UHelp_images/temp.jpg");
intent.putExtra(IMAGE_PATH_KEY,message);
startActivity (intent);
}
(我硬编码了图像路径,您可以将变量放在那里)
在接收活动时,获取该图像路径并将其存储为字符串
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
String message = intent.getStringExtra (MESSAGE_KEY);
String ImagePath = intent.getStringExtra (IMAGE_PATH_KEY);
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
setContentView(textView);
当您在接收活动中有图像路径时,您可以按照@Cas应答代码,使用以下代码将其设置为相应的ImageView
File imgFile = new File(ImagePath);
if(imgFile.exists()){
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
ImageView myImage = (ImageView) findViewById(R.id.imageviewTest);
myImage.setImageBitmap(myBitmap);
}
继续编码为什么不像处理文本那样将图像路径作为字符串传递给下一个活动?您可以将图像转换为字符串,然后再转换回图像,但我不会这样做,因为如果您的图像很大,则会出现OutOfMemory问题。所以最好只传递路径。所以我必须为图像创建一个路径?看起来您的图像已经有一个路径(存储图像的位置)。我确信你的图像存储在设备的某个地方。谢谢你的帮助,女士:)我想你接受了我的回答。。。但是无论如何欢迎:)我必须为照片创建另一个字符串吗?我仍然有问题:(就像你把信息传递给其他活动一样,传递图片的路径,然后在其他活动中获得该路径