<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/venueImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
我有一个普通的listview和一个自定义适配器,使用上面的xml作为行。
我只有3行,但我希望这3行具有相同的高度以适应屏幕分辨率的高度。目前我甚至不知道如何设置行的高度,因为设置LinearLayout的高度不会做任何事情。
答案 0 :(得分:2)
您可以设置ImageView
的高度以获得所需内容。要以编程方式设置,可以在自定义适配器的getView()
上执行此操作:
public View getView(int position, View convertView, ViewGroup parent) {
View cv = convertView;
if (convertView == null) {
cv = inflater.inflate(R.layout.listview_item, null);
}
ImageView venueImage = (ImageView) cv.findViewById(R.id.venueImage);
LinearLayout.LayoutParams vi_params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, (int)(screenHeight*0.33);
venueImage.setLayoutParams(vi_params);
return cv;
}
您可以通过在主要活动中添加此代码来获取屏幕高度:
int screenHeight = ((WindowManager)context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getHeight();