0

当我按下列表视图上的特定项目时,它应该通过在其上显示背景图像来突出显示。问题是图像没有正确显示。我android:attr/activatedBackgroundIndicator用来在背景上显示图像。

原图: 在此处输入图像描述

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:id="@+id/relLayout"
       android:background="?android:attr/activatedBackgroundIndicator"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="5dip" >
    <!-- ListRow Left side Thumbnail image -->
    <LinearLayout
        android:id="@+id/thumbnail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"

        android:layout_marginRight="5dip"
        android:padding="3dip" >
        <ImageView
            android:id="@+id/list_image"
            android:contentDescription="@string/app_name"
            android:layout_width="60dip"
            android:layout_height="60dip"
            android:src="@drawable/ic_launcher" />
    </LinearLayout>
    <!-- Rightend Arrow -->
    <ImageView
        android:id="@+id/imageView1"
        android:contentDescription="@string/app_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:src="@drawable/abs__ic_go" />
    <!-- City tvCity -->
    <TextView
        android:id="@+id/pid"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="75dip"
        android:layout_centerVertical="true"

        android:paddingBottom ="10dip"
        android:text="Main Groups"
        android:textColor="#f5f5f5"
        android:textSize="15dip"
        android:textStyle="bold"

        android:typeface="sans" />
    <!-- Weather Information-->
    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/pid"
        android:layout_alignLeft="@+id/pid"
        android:paddingTop="5dip"
        android:layout_centerHorizontal="true"
        android:text="Main"
        android:textColor="#f5f5f5"
        android:textSize="15dip" />
</RelativeLayout>   

下面是负责放背景的xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_activated="true" android:drawable="@drawable/listview_back" />

  <item android:state_pressed="true" 
        android:state_enabled="true"
        android:drawable="@drawable/listview_back" />

  <item android:state_focused="false" 
        android:state_pressed="false" 
        android:state_selected="false"
        android:state_checked="false" 
        android:state_enabled="true" 
        android:state_checkable="false"
        android:drawable="@android:color/transparent"/>

</selector>

结果(一直在试验尺寸但仍然是相同的输出): 在此处输入图像描述

4

1 回答 1

0

1- android:background属性在显示图像时不使用缩放,因此图像将不适合父尺寸。2- 在您的主 xml 文件(包含 listView 本身)中,您可能会将 listView 设置为固定宽度,因此不会显示项目的整个区域可能是隐藏的一部分。

** 我的建议是在适合项目的项目的relativeLayout中使用ImageView并在此ImageView中将图像设置为android:src 而不是android:background 并使用scaleType="fitXY",这样ImageView将是负责调整您的图像大小以适合已经适合您的相对布局的 ImageView。

于 2013-10-02T14:15:35.330 回答