我的應用程序的一個屏幕顯示了一個包含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值的寬度和高度的活性。我的問題似乎是,幾個月前我最初編寫此代碼時,我只設計它爲面向橫向的圖片工作,現在它也需要爲縱向工作。
我正在調整它們的大小(請參閱新附加的代碼),我想我發現200和150對於寬度和高度都很好,至少對於風景圖片來說。我將如何測試垂直相機鏡頭? – VTDoubleE