我有一个列表视图,一个列表项包含两个 textview&#39> 和一个 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 :(得分:1)
所以,就像我想的那样,将整数乘以0.33返回0,所以我使用了DIVISION: &#34; userImage.getLayoutParams()。height = MainActivity.height / 3;
无论如何,我仍然没有得到想要的结果,因为actionBar仍然会发生。
所以我得到了它:
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;
}