2013-02-15 82 views
1

快問圖片瀏覽,這是我的佈局:Android的 - 不顯示照片

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<ImageView 
    android:id="@+id/our_photo" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:contentDescription="@string/image_description"/> 

<Button 
    android:id="@+id/our_button" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/button_photo" 
    android:onClick="TakePhoto" /> 

<Button 
    android:id="@+id/load_button" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/show_photo" 
    android:onClick="ShowPhoto" /> 

<TextView 
    android:id="@+id/our_text" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/file_directory" /> 

</LinearLayout> 

這是我的代碼,我試圖顯示從畫廊加載(像剛剛創建的圖像,所以它它會加載它 - 在調試模式下,我可以看到myBitmap對象不是null),但它不顯示任何內容。我試圖創建一個黑色的位圖,看看它是否是一個佈局缺陷,但它顯示它很好,但它目前不適用於一個文件。

public void ShowPhoto(View v) { 
    File imgFile = new File(mCurrentPhotoPath); 
    if(imgFile.exists()){ 
     //Decode image size 
     BitmapFactory.Options o = new BitmapFactory.Options(); 
     o.inJustDecodeBounds = true; 
     try { 
      BitmapFactory.decodeStream(new FileInputStream (imgFile),null,o); 
     } catch (FileNotFoundException e1) { 
      e1.printStackTrace(); 
     } 

     //The new size we want to scale to 
     final int REQUIRED_SIZE_X=240; 
     final int REQUIRED_SIZE_Y=400; 

     //Find the correct scale value. It should be the power of 2. 
     int scale=1; 
     while(o.outWidth/scale/2>=REQUIRED_SIZE_X && o.outHeight/ scale/2>=REQUIRED_SIZE_Y) 
      scale*=2; 

     //Decode with inSampleSize 
     BitmapFactory.Options o2 = new BitmapFactory.Options(); 
     o2.inSampleSize=scale; 
     Bitmap myBitmap=null; 
     try { 
      myBitmap = BitmapFactory.decodeStream(new FileInputStream(imgFile), null, o2); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 

     Display display = getWindowManager().getDefaultDisplay(); 
     Point screenSize = new Point(); 
     display.getSize(screenSize); 
     //imageView.setMinimumHeight(screenSize.y/2); 
     //imageView.setMinimumWidth(screenSize.x/2); 

     imageView.setImageBitmap(Bitmap.createScaledBitmap(myBitmap, screenSize.x/2, screenSize.y/2, false)); 
    } 

在調試模式下,沒有例外等,它都進行得很順利,沒有結果。 有什麼想法?

+0

您是否引用了圖片視圖? – moDev 2013-02-15 09:16:00

+0

Mitesh,就是這樣!我使用imageView變量作爲全局變量,並僅在正確顯示黑色位圖的on create方法期間引用它。我現在已經提到它,它確實有效!非常感謝您提供這樣一個簡單而正確的答案!隊友的歡呼聲。 – 2013-02-15 09:24:51

+0

@ user1619684那麼你應該接受他的答案,如果這有助於你 – Androyds 2013-02-15 09:37:26

回答

0

看起來你忘了引用你的ImageView

ImageView imageView = (ImageView) findViewById(R.id.our_photo);