在所选项目中正确添加背景图像(ListView)

时间:2013-09-23 08:49:00

标签: java android android-layout listview android-listview

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

原始图片: enter image description here

<?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>

结果(一直在试验尺寸,但仍然是相同的输出): enter image description here

1 个答案:

答案 0 :(得分:0)

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

**我建议在符合项目的项目的 relativeLayout 中使用 ImageView ,并在此 ImageView 中设置图片 android:src 不在 android:background 中并使用 scaleType =“fitXY”,通过这种方式 ImageView 将负责调整图像的大小以适合已经适合您的相对布局的ImageView。