如何根据显示器分辨率

问题描述:

设置列表项的高度我有一个列表视图,和一个列表项由两个的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> 

因此,任何想法如何使列表项高度依赖于屏幕高度,所以只有三个将适合?

因此,正如我想,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; 
    }