2016-03-15 9 views
1

Я использую следующее, чтобы открыть хранилище и установить фон ImageButton.Настройка фона ImageButton, считывая хранилище в android

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

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

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


     imgLogo.setImageBitmap(BitmapFactory.decodeFile(picturePath)); 


    } 

Но даже если в существуют явные разрешения я наклоняю установить фон IMAGEBUTTON

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

и я получаю ... требует android.permission.READ_EXTERNAL_STORAGE или grantUriPermission()

ответ

0

It работает на меня.

BitmapFactory.Options bmOptions = new BitmapFactory.Options(); 
Bitmap bitmap = BitmapFactory.decodeFile(picturePath,bmOptions); 
bitmap = Bitmap.createScaledBitmap(bitmap,parent.getWidth(),parent.getHeight(),true); 
imgLogo.setImageBitmap(bitmap); 

Кроме того, проверьте видимость изображения.