从图库中选择图像,在图像视图中显示并保存显示在新目录中的图像

时间:2016-11-25 14:50:59

标签: android android-studio

我的Activity中有两个按钮和一个ImageView。当我点击一个按钮时,它会重定向到图库,我可以选择一个图像。所选图像将出现在我的ImageView中。 现在的问题是我希望保存按钮保存显示在新目录中的图像,就像在Instagram等应用程序中一样。

我的布局如下:

  <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="imgClick"
        android:id="@+id/imgButton"
        android:text="Select Image"
        android:layout_marginTop="20dp" />

    <ImageView 
        android:layout_height="100dp"
        android:layout_width="100dp"
        android:layout_centerHorizontal="true"
        android:id="@+id/diddyImageView"
        android:layout_alignParentTop="true"
        android:scaleType="fitXY"
        android:maxWidth="100dp"
        android:maxHeight="100dp"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="addMovieClick"
        android:id="@+id/addMovieButton"
        android:text="Submit Movie"
        android:background="@color/colorPrimary"
        android:layout_marginTop="20dp" />

我的活动如下:

   public void imgClick(View v){
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECTED_PICTURE);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == SELECTED_PICTURE && resultCode == RESULT_OK) {

            uri = data.getData();
            diddyImageView.setImageURI(uri);

        }
}

图像显示正常,我想将图像保存在新文件夹中,我不知道如何去做..任何帮助将不胜感激。谢谢

1 个答案:

答案 0 :(得分:0)

步骤1:使用ContentResolveropenInputStream()在图片的InputStream上打开Uri

步骤2:在所需的副本文件上打开FileOutputStream

步骤3:使用标准Java I / O将字节从InputStream复制到FileOutputStream

步骤#4:将所有工作移至后台线程(并考虑使用图像加载库来替换setImageURI()调用),以避免占用主应用程序线程完成所有这些工作< / p>