Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android活动中的图像浏览按钮_Android_Imageview_File Browser - Fatal编程技术网

android活动中的图像浏览按钮

android活动中的图像浏览按钮,android,imageview,file-browser,Android,Imageview,File Browser,目前我正在开发一个应用程序,它需要在我的活动中有一个浏览按钮。当我按下浏览按钮时,我应该能够浏览SD卡和手机存储器中的图像文件。点击图像文件后,应将其选中,并且图像文件的路径(即所选图像文件所在的位置)应显示在文本视图的“活动”中。此外,所选图像应显示在imageview中。如何做到这一点?有人能帮我一下吗?main.xml 在清单中添加权限 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /

目前我正在开发一个应用程序,它需要在我的活动中有一个浏览按钮。当我按下浏览按钮时,我应该能够浏览SD卡和手机存储器中的图像文件。点击图像文件后,应将其选中,并且图像文件的路径(即所选图像文件所在的位置)应显示在文本视图的“活动”中。此外,所选图像应显示在imageview中。如何做到这一点?有人能帮我一下吗?

main.xml 在清单中添加权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

MediaStore.Images.Media.DATA已弃用。所以@Looking_Forward bro的代码在android 10+上不起作用。但只需一个简单的修改,我就完成了@Looking_Forward bro的代码。过程如下:

Uri之后选择edimage=data.getData()行删除所有代码,只需使用
Glide.with(this).load(selectedImage).into(imageView)
(这是Glide库)。此外,使用contentProvider(这是@Looking_Forward bro展示的)更容易

package com.example.yourpackage;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends Activity {


    private static int RESULT_LOAD_IMAGE = 1;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button buttonLoadImage = (Button) findViewById(R.id.buttonLoadPicture);
        buttonLoadImage.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {

                Intent i = new Intent(
                        Intent.ACTION_PICK,
                        android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

                startActivityForResult(i, RESULT_LOAD_IMAGE);
            }
        });
    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
            Uri selectedImage = data.getData();
            String[] filePathColumn = { MediaStore.Images.Media.DATA };

            Cursor cursor = getContentResolver().query(selectedImage,
                    filePathColumn, null, null, null);
            cursor.moveToFirst();

            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            String picturePath = cursor.getString(columnIndex);
            cursor.close();

            ImageView imageView = (ImageView) findViewById(R.id.imgView);
            imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));

        }


    }
}
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />