首页 > 解决方案 > 图库不会在 Android 中使用 Intent 显示图片

问题描述

我在我的另一个项目中尝试了相同的代码,并且运行良好。我的问题是,当我单击选择照片时,它应该打开图库以选择要上传的图片。但是,我的显示如下:

在此处输入图像描述

我拥有的另一个应用程序正在图库中显示图片。看一看:

在此处输入图像描述

我已经仔细检查过,我可以看到我已经使用了正确的权限与此代码。

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.devcash">

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".WhyDevcash"></activity>
        <activity android:name=".HelpCenterEmployees" />

        <activity
            android:name=".MainActivity"
            android:screenOrientation="landscape" />
        <meta-data
            android:name="com.google.android.gms.vision.DEPENDENCIES"
            android:value="barcode" />
    </application>
</manifest>

这是我的 MainActivity 的片段

    private static final int PICK_IMAGE = 100;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_employee);

        choosephoto = (LinearLayout) findViewById(R.id.empchoosephoto);
        choosephoto.setOnClickListener(this);
    }

@Override
    public void onClick(View v) {
        int sid = v.getId();

        switch (sid){
            case R.id.empchoosephoto:
                Intent gallery = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
                startActivityForResult(gallery, PICK_IMAGE);
                break;
        }
     }

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

        if(requestCode!=0){
            if(data!=null){
                empimageUri = data.getData();
                empimage.setImageURI(empimageUri);
            }
        }
    }

你能告诉我这个我缺少什么吗?

标签: androidandroid-intent

解决方案


intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE);

试试这个,你选择图像的意图可能是错误的


推荐阅读