2013-02-01 74 views
2

我的應用程序的一個屏幕顯示了一個包含6列的列表視圖,第六個是包含用戶創建的圖片或草圖的imageView。下面是對於ListView行的代碼:其中所顯示的圖像是由照相機拍攝的垂直方向的畫面:除了一個案例Android中的Listview在某些行的頂部和底部添加額外空間

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:paddingTop="2dp" 
    android:paddingBottom="2dp" > 

    <TextView android:id="@+id/surveyColumn1" 
     android:textSize="13sp" 
     android:layout_width="0dip" 
     android:layout_weight="0.105" 
     android:layout_height="wrap_content"/> 

    <TextView android:id="@+id/surveyColumn2" 
     android:textSize="13sp" 
     android:layout_width="0dip" 
     android:layout_weight="0.137" 
     android:layout_height="wrap_content"/> 

    <TextView android:id="@+id/surveyColumn3" 
     android:textSize="12sp" 
     android:layout_width="0dip" 
     android:layout_weight="0.25" 
     android:layout_height="wrap_content"/> 

    <TextView android:id="@+id/surveyColumn4" 
     android:textSize="13sp" 
     android:layout_width="0dip" 
     android:layout_weight="0.153" 
     android:layout_height="wrap_content"/> 

    <TextView android:id="@+id/surveyColumn5" 
     android:textSize="13sp" 
     android:layout_width="0dip" 
     android:layout_weight="0.153" 
     android:layout_height="wrap_content"/> 

    <ImageView android:id="@+id/surveyColumn6" 
     android:layout_width="0dip" 
     android:layout_weight="0.202" 
     android:layout_height="wrap_content" 
     android:paddingTop="0dp" 
     android:paddingBottom="0dp" 
     android:scaleType="centerInside" 
     android:layout_gravity="center" 
     android:contentDescription="@string/pictureHeader"/> 

</LinearLayout> 

這種設置的偉大工程。在這種情況下,listview會在行內部的圖像上方和下方拋出一堆空白區域。在這個活動中,我使用的是一個custumViewBinder來使用代碼將圖像顯示爲位圖:http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

我發現擺脫空間的唯一方法是將靜態高度設置爲imageView ,我寧願不這樣做,因爲有些行不會有圖像。任何能夠弄清楚發生的事情都是我的英雄。

編輯:這是我打電話作爲位圖,以顯示圖像的類:

public class customBitmap { 

    public customBitmap(String pathName, int width, int height, ImageView view) { 
     final BitmapFactory.Options options = new BitmapFactory.Options(); 
     options.inJustDecodeBounds = true; 
     BitmapFactory.decodeFile(pathName, options); 

     options.inSampleSize = calculateInSampleSize(options, width, height); 

     options.inJustDecodeBounds = false; 
     Bitmap bitmap = BitmapFactory.decodeFile(pathName, options); 

     //Check if bitmap was created; if so, display it in the imageView 
     if(bitmap == null) 
      Log.w("UI Thread", "Null bitmap at moto.sitesurvey.customBitmap:35"); 
     else 
      view.setImageBitmap(bitmap); 
    } 

    public int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight){ 
     final int height = options.outHeight; 
     final int width = options.outWidth; 
     int inSampleSize = 1; 

     if(height > reqHeight || width > reqWidth) { 
      if(width > height) 
       inSampleSize = Math.round((float)height/(float)reqHeight); 
      else 
       inSampleSize = Math.round((float)width/(float)reqWidth); 
     } 

     return inSampleSize; 
    } 

} 

在我傳遞的200和150值的寬度和高度的活性。我的問題似乎是,幾個月前我最初編寫此代碼時,我只設計它爲面向橫向的圖片工作,現在它也需要爲縱向工作。

回答

2

每stoney80的建議,在我post於r/androiddev,我增加了行

android:adjustViewBounds="true" 

到imageVew,這得到它做的正是我所期待的。

0

您是否在將圖像放入視圖之前調整圖像大小?如果是這樣,請檢查並查看圖像處理的最佳尺寸,並嘗試將從垂直方向攝像頭拍攝的位圖調整爲此大小。

如果這不幫助你,我可以看看你的imageview和位圖代碼?

+0

我正在調整它們的大小(請參閱新附加的代碼),我想我發現200和150對於寬度和高度都很好,至少對於風景圖片來說。我將如何測試垂直相機鏡頭? – VTDoubleE

相關問題