2014-08-31 102 views
0

設置列表項的高度我有一個列表視圖,和一個列表項由兩個的TextView的ImageView的(實際圖像從服務器下載與ION庫的幫助)。我想在屏幕上準確地顯示3個列表項目,但由於屏幕分辨率不同,我無法簡單地通過設置項目高度來完成。如何根據顯示器分辨率

我已經試過是:

vi_params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, (int)(MainActivity.screenHeight*0.33)); 
userImage.setLayoutParams(vi_params); 

但是這給事件不同的結果 - 沒有圖像在所有顯示。

這就是我的list_item.xml的樣子。

<RelativeLayout 
    android:id="@+id/widget32" 
    android:layout_width="fill_parent" 
    android:layout_height="110dp" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_x="0dp" 

    android:layout_y="0dp"> 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="fill_parent" 
     android:layout_height="260dp" 
     android:layout_x="0dp" 
     android:layout_y="0dp" 

     android:scaleType="fitXY" 
     android:src="@drawable/ic_launcher" /> 
    <TextView 
     android:id="@+id/ID" 
      android:layout_width="320dp" 
    android:layout_height="wrap_content" 
    android:visibility="invisible"/> 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginLeft="10dp" 
    android:layout_marginTop="10dp" 
    android:text="TextView" /> 

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:layout_marginBottom="10dp" 
    android:layout_marginRight="10dp" 
    android:text="TextView" /> 

</RelativeLayout> 

因此,任何想法如何使列表項高度依賴於屏幕高度,所以只有三個將適合?

回答

1

因此,正如我想,0.33乘以整數返航0,所以我用DIVISION: 「userImage.getLayoutParams()高度= MainActivity.height/3;

不管怎麼說,我仍不很噸得到想要的結果,因爲動作條仍然發生

所以我只是用了它:

TypedValue tv = new TypedValue(); 
     if (getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true)) 
     { 
      actionbarheight = TypedValue.complexToDimensionPixelSize(tv.data,getResources().getDisplayMetrics()); 
     } 

而且還是它不是完美的,所以我給自己買了標題欄的高度:

public int getStatusBarHeight() { 
      int result = 0; 
      int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); 
      if (resourceId > 0) { 
       result = getResources().getDimensionPixelSize(resourceId); 
      } 
      return result; 
    }