2012-02-01 51 views
2

我第一次發佈一個問題,所以在這裏。
我想推一個按鈕,所以它打開畫廊,選擇一張圖片,然後在屏幕上顯示它(佈局)。Java android,從圖庫中獲取圖像並將其顯示在屏幕上(錯誤)

我走到這一步現在:

public void FotoKiezen(View v) { 
    Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); 
    photoPickerIntent.setType("image/*"); 
    startActivityForResult(photoPickerIntent, 1); 
} 

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    switch (requestCode) { 
    case 1: 
    { 
     if (resultCode == RESULT_OK) 
     { 
     Uri photoUri = data.getData(); 
     if (photoUri != null) 
     { 
     try { 
       String[] filePathColumn = {MediaStore.Images.Media.DATA}; 
       Cursor cursor = getContentResolver().query(photoUri, filePathColumn, null, null, null); 
     cursor.moveToFirst(); 
    int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
    String filePath = cursor.getString(columnIndex); 
    cursor.close(); 
    Bitmap bMap = BitmapFactory.decodeFile(filePath); 
    ImageView.setImageBitmap(bMap); 


    }catch(Exception e) 
     {} 
     } 
    }// resultCode 
    }// case 1 
    }// switch, request code 
}// public void onActivityResult 

還有一些其他的代碼上面也是如此,但在這裏是什麼地方的問題。

我上線ImageView.setImageBitmap(bMap); 的錯誤的錯誤:

Cannot make a static reference to the non-static method setImageBitmap(Bitmap) from the type ImageView

我在互聯網上搜索了很多,嘗試了很多東西,但我不解決這個問題。 也許這很容易,我只是沒有看到它。

我是初學JAVA的android編程,習慣用C++編程。 所以也有關於錯誤的一些解釋會很好:D

+0

而不是評論你的大括號,海事組織它更可讀(更容易維護!),以使縮進匹配。 – Rup 2012-02-01 11:09:52

+1

如果你解決了,那麼請接受答案,你認爲正確的一個.. – user370305 2012-02-01 11:19:45

回答

1

您必須創建ImageView類的對象嗎?例如:

ImageView img = new ImageView(this); 
img.setImageBitmap(bMap); 

ImageView img = (ImageView)findViewById(R.id.<your image view id>); 
img.setImageBitmap(bMap); 
+0

謝謝你的工作。 它並沒有顯示在屏幕上,但錯誤消失了,應用程序沒有崩潰,這要感謝快速而有用的回覆。 – Bigflow 2012-02-01 11:04:21

+1

您應該將其標記爲答案,以便其他人也能受益。 – 2012-02-01 11:39:48

2

我覺得這一行的原因錯誤..

ImageView.setImageBitmap(bMap); 

這裏ImageView是一類,而不是這個,你必須創建它的對象然後使用setImageBitmap即可。,

ImageVIew mImageView = new ImageView(this) 
mImageView.setImageBitmap(bMap); 

或者如果你已經在你的活動中定義了ImageView對象,那麼就使用它..

+0

感謝這工作。 ImageView img =(ImageView)findViewById(R.id. ); img.setImageBitmap(bMap); 謝謝,你們兩個人當然! [已解決] – Bigflow 2012-02-01 11:14:06

+0

@Bigflow,而不是將問題標記爲「已解決」,接受答案。 [FAQ]中的更多信息(http://stackoverflow.com/faq#howtoask) – mdelolmo 2012-02-01 11:21:09

相關問題