当前位置: 首页 > 知识库问答 >
问题:

在新活动中显示捕获的图像

祝俊
2023-03-14

我是新的Android和建立一个小应用程序,从相机拍照,并保存到画廊。

下面是捕获图像的函数。

private void onCaptureImageResult(Intent data) {
        Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, bytes);

        File destination = new File(Environment.getExternalStorageDirectory(),
                System.currentTimeMillis() + ".jpg");

        FileOutputStream fo;
        try {
            destination.createNewFile();
            fo = new FileOutputStream(destination);
            fo.write(bytes.toByteArray());
            fo.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

这是我们的主要活动。xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="10dp" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:padding="5dp" >

        <Button
            android:id="@+id/btnSelectPhoto"
            android:background="#149F82"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Select Photo" />
    </LinearLayout>



</LinearLayout>

当图像被捕获时,我想在另一个活动(页面)上显示图像,而不是在具有捕获图像按钮的同一活动上。如何做到这一点。

提前谢谢

共有3个答案

何向荣
2023-03-14

主要活动

 String filePath;
    @Override
        protected void onCreate(Bundle savedInstanceState) {   
        ...
        }

    private void onCaptureImageResult(Intent data) {
            Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
            ByteArrayOutputStream bytes = new ByteArrayOutputStream();
            thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, bytes);

      String fileName = System.currentTimeMillis() + ".jpg"

      filePath =  Environment.getExternalStorageDirectory().getAbsolutePath() + fileName;

      File destination = new File(filePath);

      ...
      }

      yourButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                Intent intent = new Intent(getApplicationContext(), AnotherActivity.class);
                intent.putExtra("filePath", filePath)
                startActivity(intent);

                }
            });

另一种活性

String filePath;
    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

    Intent intent = this.getIntent();

    filePath = intent.getStringExtra("filePath");

    File imgFile = new  File(filePath);

    if(imgFile.exists()){

        Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

        ImageView myImage = (ImageView) findViewById(R.id.imageviewTest);

        myImage.setImageBitmap(myBitmap);

        }
     }
劳华灿
2023-03-14

它很简单,在捕获照片后,您的照片将被保存。现在,在activityresult方法中,您只需使用intent来转到第二个活动。

在第二个活动中,只需获取保存图像的路径并将其设置到ImageView中。

柳德义
2023-03-14

你只需要从你的方法传递路径到新的活动。

Intent intent = new Intent(this, NewActivity.class);
intent.putExtra("MyImagePath", destination.getAbsoluteFile());
startActivity(intent);

在新的活动中

File imgFile = new  File(filePath);

if(imgFile.exists()){

    Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

    ImageView myImage = (ImageView) findViewById(R.id.imageviewTest);

    myImage.setImageBitmap(myBitmap);

}
 类似资料:
  • 问题内容: 当我单击a时,它会打开相机,并在保存时将其保存到图库中。我想在新活动中将该图片显示为。 这是我对相机按钮单击的代码 问题答案: 您的主要活动 在您的Activity2上,在onCreate方法上编写此代码

  • 以下ADB命令不适用于Android 11设备 结果在 这似乎与Android 11的变化有关,请参阅Android 11(R)返回空列表时查询ACTION_IMAGE_CAPTURE的意图,这里提到的解决方案是将此添加到清单 亚行有类似的吗?

  • 我从我的Api中获取我的Json对象/数组,并将其打印到我的视图中,foreach数组我在mainactivity中打印id和名称。 这就是我的意图:

  • 问题内容: 我目前正在屏幕上显示。警报的视图应仅在警报中心显示2个元素,一个标题和一个。下面是显示警报及其元素的功能。 但是,活动指示器不会显示在视图中心,实际上它显示在屏幕的右下角,离视图很远。这是什么原因呢? 编辑:我知道我可以为指标的位置硬编码数字,但是我希望警报在具有多种屏幕尺寸和方向的多种设备上运行。 问题答案: 创建视图时,请务必设置frame属性。 到@ 62Shark:

  • 我在用Android Studio。 如何使它支持旧版本? intractivity.xml

  • 但是当我测试在一个空文件上调用average()的程序时,它没有捕获AlithmeticException而是输出“nan”。我应该怎么做才能捕捉到显示文件为空的东西,并通知用户这没有意义/调用average()是错误的?