我已经重载了 listview 的 getView 方法来填充列表项的自定义样式。
这是现在的样子:!!
红色只是显示列表视图项的背景
在这里,我使用了 3 个控件:用于图像的 Imageview、2 个文本视图(一个顶部,一个底部)。
这里的问题是列表视图项目的高度正在增加。我想要两个文本视图而不是高于或低于图像。在某种程度上我知道这个问题的根本原因,但不知道如何解决它。
这是列表视图项的布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp" >
<ImageView android:id="@+id/imgIcon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:scaleType="fitCenter"/>
<TextView android:id="@+id/txtTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="top"
android:textStyle="bold"
android:textSize="20sp"
android:textColor="#FFFFFF"
android:layout_marginLeft="10dp"
android:layout_marginTop="2dp"
android:layout_alignLeft="@+id/imgIcon"
android:layout_alignTop="@+id/imgIcon"
android:layout_alignBottom="@+id/imgIcon"/>
<TextView android:id="@+id/txtTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="bottom"
android:textStyle="bold"
android:textSize="18sp"
android:textColor="#FFFFFF"
android:layout_marginLeft="10dp"
android:layout_marginBottom="5dp"
android:layout_alignLeft="@+id/imgIcon"
android:layout_alignTop="@+id/imgIcon"
android:layout_alignBottom="@+id/imgIcon"/>
问题是我正在为 Imageview 使用 png 图像,并且它们的大小在某些纵横比中增加了。如果我对列表视图项布局的高度进行硬编码,特别是在我的手机屏幕尺寸上,事情开始看起来不错,但在某些不同的屏幕尺寸上情况变得更糟(这也是有道理的)。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="70dp"
android:padding="5dp" >
如果有人可以解释如何做到这一点,那就太好了。主要问题是在图像上显示文本(并且图像不一样)。谢谢。
更新:我的主要问题是我没有图像的位向量,而是 PNG,它试图放大图像。(将比例类型设置为 center-fit 可能是一个选项,但它是否适用于背景资源?如果我将图像设置为列表视图项的背景并在其上设置两个文本,则输出如下。