如何从三星的画廊中挑选图像

时间:2017-04-20 06:08:01

标签: android samsung-mobile

我想构建一个应用程序可以从库中选择照片。这是我使用的代码

Intent photo_pick = new Intent(Intent.ACTION_PICK);
photo_pick.setType("image/*");
startActivityForResult(photo_pick , PICK_PHOTO_INTENT );

这个代码我试过,它适用于华为手机小米。但是当它在三星上工作时,它返回的路径是错误路径无法获取照片。

如何改善它以让三星手机也能正常工作?

5 个答案:

答案 0 :(得分:1)

检查以下代码,从库中选择照片,

private static final int REQUEST_PROFILE_ALBUM = 1;


Intent int_album = new Intent(Intent.ACTION_PICK);
int_album.setType("image/*");
int_album.putExtra(MediaStore.EXTRA_OUTPUT, img_url);
startActivityForResult(int_album, REQUEST_PROFILE_ALBUM);

选择图像后调用onActivityResult,

if (requestCode == REQUEST_PROFILE_ALBUM && resultCode == Activity.RESULT_OK && data != null) {
        Uri selectedImage = data.getData();
        String[] projection = {MediaStore.Images.Media.DATA};
        Cursor cursor = activity.getContentResolver().query(selectedImage, projection, null, null, null);
        cursor.moveToFirst();

        int columnIndex = cursor.getColumnIndex(projection[0]);
        String picturePath = cursor.getString(columnIndex); 
}

答案 1 :(得分:0)

试试这段代码:

    Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    if (intent.resolveActivity(getPackageManager()) != null) {
            // Bring up gallery to select a photo
            startActivityForResult(intent, 2);
       }else{
            Toast.makeText(UserProfileActivity.this,"No Gallery app found!", Toast.LENGTH_SHORT).show();
       }

答案 2 :(得分:0)

选择这样的图像

private void showFileChooser() {
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
    }

选择图像 onActivityResult 会自动调用

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

    if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {

    }
}

答案 3 :(得分:0)

试试这可能会对你有所帮助:

Button btn_selectimage = (Button) findViewById(R.id.btn_selectimage);

btn_selectimage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                img_capture.setVisibility(View.VISIBLE);
                Intent intent = new Intent();
                intent.setType("image/*");
                intent.setAction(Intent.ACTION_GET_CONTENT);
                startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);
            }
        });

xml代码:

    <Button
        android:id="@+id/btn_selectimage"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Select Picture"/>

答案 4 :(得分:0)

为了执行下面的代码,只有当android版本高于lolipop时才需要获取请求持久性

 Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
 photoPickerIntent.setType("image/*");
 startActivityForResult(photoPickerIntent, 500);