簡體   English   中英

從圖庫中檢索到的圖像無法加載到圖像視圖中

[英]Image retrieved from gallery is unable to load onto the image view

我是Android的初學者,我在做一個簡單的應用程序,能夠將圖像上傳到服務器,並且無法將圖像從圖庫中加載到ivImage圖像視圖中。 這是我的代碼,下面是錯誤。

public class Home extends AppCompatActivity implements View.OnClickListener{
private static final int RESULT_LOAD_IMAGE = 1;

ImageView ivUpload, ivGallery, ivImage;
EditText etItemdesc,etItemname;


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

    ivImage = (ImageView) findViewById(R.id.ivImage);
    ivUpload = (ImageView) findViewById(R.id.ivUpload);
    ivGallery = (ImageView) findViewById(R.id.ivGallery);
    etItemdesc = (EditText) findViewById(R.id.etItemdesc);
    etItemname = (EditText) findViewById(R.id.etItemname);

    ivGallery.setOnClickListener(this);
    ivUpload.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    switch(v.getId()){
        case R.id.ivGallery:
            Intent galleryIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            startActivityForResult(galleryIntent,RESULT_LOAD_IMAGE);
            break;
        case R.id.ivUpload:

            break;
    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == RESULT_LOAD_IMAGE && resultCode ==RESULT_OK && data!= null){
        Uri selectedImage = data.getData();
        ivImage.setImageURI(selectedImage);   //error is on this row
    }
}
}

這是錯誤

Unable to open content: content://media/external/images/media/42
         java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media/42 from pid=3098, uid=10058 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
             at android.os.Parcel.readException(Parcel.java:1599)
             at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
             at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:146)
             at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:692)
             at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1104)
             at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:942)
             at android.content.ContentResolver.openInputStream(ContentResolver.java:662)
             at android.widget.ImageView.resolveUri(ImageView.java:832)
             at android.widget.ImageView.setImageURI(ImageView.java:449)
             at chengweifeng1132701116.fyp.Home.onActivityResult(Home.java:52)
             at android.app.Activity.dispatchActivityResult(Activity.java:6428)
             at android.app.ActivityThread.deliverResults(ActivityThread.java:3695)
             at android.app.ActivityThread.handleSendResult(ActivityThread.java:3742)
             at android.app.ActivityThread.-wrap16(ActivityThread.java)
             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1393)
             at android.os.Handler.dispatchMessage(Handler.java:102)
             at android.os.Looper.loop(Looper.java:148)
             at android.app.ActivityThread.main(ActivityThread.java:5417)
             at java.lang.reflect.Method.invoke(Native Method)
             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

您忘記添加此權限:

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

如果您正在api20 +上進行測試,請確保添加運行時許可。 請參閱此處的文檔: https : //developer.android.com/training/permissions/requesting.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM