2013-07-19 65 views
1

我是android的noob,我想用SDcard中的文件設置ImageButton圖像。但是,getBitmap不會創建工作位圖。當我用剛創建的位圖設置ImageButton時,imageButton的尺寸會發生變化,但圖像不會出現。這真是令人沮喪,任何幫助解決這一問題,我都非常感謝。getBitmap方法爲什麼不能正常工作?

mycode的

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     switch (requestCode) { 
     case REQUEST_CODE: 
      // If the file selection was successful 
      if (resultCode == RESULT_OK) {  
       if (data != null) { 
        // Get the URI of the selected file 
        final Uri uri = data.getData(); 

        try { 
         // Create a file instance from the URI 
         final File file = FileUtils.getFile(uri); 

         Toast.makeText(Profile_Barber.this,"File Selected: "+file.getAbsolutePath(), Toast.LENGTH_LONG).show(); 
         Log.e("URI", uri.toString());//Returns: content://media/external/images/media/1834 

         Bitmap bmp = MediaStore.Images.Media.getBitmap(this.getContentResolver(), uri); 

         if(bmp==null){ 
          Log.e("BMP NULL", "This that bullshit!"); 
         }else{ 
          Log.e("BMP NOT NULL", bmp.toString()); //Returns: BMP NOT NULL [email protected] 

          profilepic.setImageBitmap(bmp); 
         } 

} catch (Exception e) { 
         Log.e("FileSelectorTestActivity", "File select error", e); 
         e.printStackTrace(); 
        } 
       } 
      } 
      break; 
     } 
     super.onActivityResult(requestCode, resultCode, data); 
    } 
+0

您是否嘗試將位圖設置爲ImageView? – kvh

+0

不,我沒有。它真的有區別,無論它是一個imageview或imageButton? – DollaBill

+0

我的意思是,如果你可以在ImageView中製作它,那麼我們可以確保位圖很酷,我們可以尋找另一個原因。 – kvh

回答

1

如何使用這個解碼圖像?

 Uri contentURI = Uri.parse(data.getDataString());   
     ContentResolver cr = getContentResolver(); 
     InputStream in = cr.openInputStream(contentURI); 
     Bitmap pic = BitmapFactory.decodeStream(in,null,null); 
+0

或者只是使用Uri imageUri = data.getData(); imageView.setImageUri(imageUri);設置圖片 – kvh

+0

感謝您的建議。它仍然給我同樣的結果。我正在使用aFileChooser庫來訪問和選擇我的SDCard中的文件。這可能是問題的根源嗎? – DollaBill

+0

我不確定,如何使用myIntent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);挑選文件 – kvh

相關問題