-1

我想将自定义背景应用于我的 ExpandableListView。ExpandableListView 在slidingMenu 内。

以下是样式:

<style name="Widget.SlidingMenu.ExpandableListView" parent="android:Widget.ExpandableListView">
    <item name="android:background">@drawable/sliding_menu_background</item>
    <item name="android:cacheColorHint">@android:color/transparent</item>
    <item name="android:divider">@drawable/menu_divider</item>
    <item name="android:childDivider">@drawable/menu_divider</item>
    <item name="android:dividerHeight">4px</item>
</style>

这是背景图片:

<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
        android:src="@drawable/menu_noise"
        android:tileMode="repeat"
        android:dither="true"
        />

但问题是,有时我的背景会像这样缩放和重复: https ://dl.dropboxusercontent.com/u/6129677/bad_bg.JPG

有时一切都很好: https ://dl.dropboxusercontent.com/u/6129677/good_bg.JPG

这是应该重复的背景: https ://dl.dropboxusercontent.com/u/6129677/menu_noise.png

我无法理解这背后的问题是什么。请给我一个线索。

4

1 回答 1

2

这是旧版本 Android 中的错误。解决此问题的最简单方法是从代码中设置平铺模式。创建 ExpandableListView 后,只需获取其背景可绘制对象并更改平铺模式:

View myListView = findViewById(...);
((BitmapDrawable) myListView.getBackground()).setTileModeXY(
    Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
于 2013-06-12T23:43:01.287 回答