在Android上,如何通过窗口上的元素(包括ListView)显示背景图像?

在Android上,如何通过窗口上的元素(包括ListView)显示背景图像?,android,android-listview,android-linearlayout,Android,Android Listview,Android Linearlayout,我有一个android 2.1项目,在一个线性布局中有一个列表视图。LinearLayout将背景设置为图像: android:background=“@drawable/background” 我的意图是通过屏幕上填充的任何数据始终可以看到背景。这在很大程度上是可行的,但我遇到了一些怪癖 1) 在emulator中,背景会填满屏幕,但在我的手机上不会。当应用程序启动时,我可以在顶部看到它的一小部分,当项目添加到ListView时,会显示更多内容。我能看到每一排后面的背景;只是不在没有争吵的地方

我有一个android 2.1项目,在一个线性布局中有一个列表视图。LinearLayout将背景设置为图像:

android:background=“@drawable/background”

我的意图是通过屏幕上填充的任何数据始终可以看到背景。这在很大程度上是可行的,但我遇到了一些怪癖

1) 在emulator中,背景会填满屏幕,但在我的手机上不会。当应用程序启动时,我可以在顶部看到它的一小部分,当项目添加到ListView时,会显示更多内容。我能看到每一排后面的背景;只是不在没有争吵的地方。我如何让它填满屏幕,甚至在我的手机上?这是Droid X,如果有关系的话


2) 在emulator中,当我按住一行上的按钮并将鼠标移到其他行上时,选定行上的背景将消失。在电话里,这种情况也会发生。如何始终看到背景?

首先,确保未设置
列表视图及其项的背景属性

列表视图的缓存颜色提示属性设置为#000000(空白)

您可以使用android:cacheColorHint=“@color/blank”在xml中执行此操作


或者在代码中使用
ListView.setCacheColorHint(0)

可以使用框架布局并添加

  • 具有您的背景的图像视图。例如,使用android:scaleType=“centerCrop”
  • ,使其缩放保持纵横比(
    layout\u width
    layout\u height
    都设置为
    fill\u parent
  • 您的列表视图(
    layout\u width
    layout\u height
    都设置为
    fill\u parent
  • 是否看到列表视图后面的图像也取决于所使用的列表视图元素


    同时设置ListView的属性:android:cacheColorHint=“#00000000”
    (透明)

    对于第一个问题,我认为您应该让ListView填满屏幕上的所有可用空间,使其最大化高度,例如:android:layout\u height=“0dp”&android:layout\u weight=“1”

    对于第二个问题,您应该记住,当ListView的项被聚焦时,它会显示其默认颜色。您可以对列表项使用选择器,使内容更清晰、更好