如何根据显示器分辨率
问题描述:
设置列表项的高度我有一个列表视图,和一个列表项由两个的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;
}