如何向另一个活动显示消息和照片

时间:2016-03-09 14:56:52

标签: android android-studio

我正在尝试创建一个简单的消息传递应用程序,将文本和照片发送到另一个活动,但我只知道如何显示文本,你能教我如何显示照片吗?我只是一个新的程序员,我想学习,所以我希望你能帮助我们:)

以下是我发送活动的代码..

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);

3 个答案:

答案 0 :(得分:1)

你应该用其他活动加载它:

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);

}

希望这会对你有所帮助。

答案 1 :(得分:0)

你也可以传递图像的Drawablepath,就像你使用putExtras()一样传递信息,然后传递给另一个Activity,只传递StringKey 1}}您将获得Drawablepath,您可以根据需要使用它。

修改

我不确定这是否正确path但如果是,您可以通过此String,然后从Image执行此path imageView.setImageDrawable(Drawable.createFromPath(path)); Drawable 1}}甚至你可以传递Activity ...并在另一个sdcard/UHelp_images/temp.jpg

上使用它
<div class="pertama">
<div class="jumbotron">
  <div class="container">
      <h1>Aceh Bus App</h1>
      <hr class="light">
      <h2>Satu Aplikasi. Semua Bus</h2>
      <button class="btn">
        Tentang Aceh Bus App
      </button>
  </div>
</div>

答案 2 :(得分:0)

发送图片路径以及短信,如下面的代码:

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

(我对图像路径进行了硬编码,您可以将变量放在那里) 在接收活动上,获取该Image Path并将其存储为String

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);

如果您在接收活动中有Image Path,那么您可以按照@Cas Answer代码使用以下代码将其设置为Corresponding 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);
}

保持编码