0

我在 Android 中有一个动态加载的列表视图。列表视图包含一个图像,上面显示了图像的描述,理想情况下应该占据图像高度的 20%。如何检查列表中图像视图顶部的文本视图是否占用图像的 20% 的最大高度?

在此处输入图像描述

正如您从屏幕截图中看到的那样,“Harvey's - -check in for a chance to win a free burger Picker, ON”在文本视图中以 2 行显示,有时如果我的 android 设备很小,它会超出背景(黑色)查看和看起来很糟糕。我需要停止它,所以我决定如果字符串在我的文本视图上溢出,我必须截断它。

如何截断 textview 上的字符串,以便一旦达到 imageview 高度的 20%,图像描述以“...”结尾

我目前拥有的xml如下所示。请注意, com.parse.myPackage.AspectRatioImageView 只是 imageview 的自定义视图

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFFFF" >

<com.parse.myPackage.AspectRatioImageView
    android:id="@+id/campaignImageLabel"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:scaleType="fitXY"
    android:src="@drawable/blank" />

<FrameLayout
    android:id="@+id/frameLayout1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/frameLayout2"
    android:layout_alignParentLeft="true"
    android:background="@color/fadedBlack">

        <TextView
            android:id="@+id/campaignNameLabel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Loading..."
            android:layout_marginLeft="10dp"
            android:textColor="@color/white"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textStyle="bold" />



</FrameLayout>

<FrameLayout
    android:id="@+id/frameLayout2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/campaignImageLabel"
    android:layout_alignParentLeft="true"
    android:background="@color/fadedBlack">

        <TextView
        android:id="@+id/campaignLocationLabel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:text="Location Loading..."
        android:textColor="@color/white"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textStyle="bold" />
</FrameLayout>

4

1 回答 1

0

您可以使用 :

android:ellipsize="end" 
android:maxLines="1"

如果android:maxLines="1"确实完成了您的工作,那么您可以尝试Android:singleLine="true"

于 2013-11-19T14:11:11.503 回答