作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用一个选择器来为我的 View 设置动画,其中一个我是这样做的:
查看:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1"
android:background="@drawable/selector_gridview" >
选择器_ GridView :
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="false"
android:drawable="@drawable/selector_gridview_normal"
/>
<item
android:state_pressed="true"
android:drawable="@drawable/selector_gridview_pressed"
/>
</selector>
selector_gridview_pressed:
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape>
<solid android:color="@color/overlayed" />
<stroke
android:width="1px"
android:color="#cccac3" />
</shape>
</item>
<item>
<bitmap
android:antialias="true"
android:dither="true"
android:src="@drawable/bg_stripes_dark"
android:tileMode="repeat" />
</item>
</layer-list>
bg_stripes_dark 是位于 drawable-nodpi
文件夹中的 .png。
selector_gridview_normal
和 selector_gridview_pressed
的位图相同,但是当按下 View 时,位图不会像未按下 View 时那样重复。
我使用的是 MDPI/API 8 设备
,在 4.0 设备(等等)中不存在这个问题。
这似乎是 Support v4 Gridview 的问题。实际上它似乎有很多问题。有什么办法可以解决吗?
最佳答案
这是我们在 Android 3.0+ 中修复的一个不幸的错误(我不记得确切的版本。)解决此错误的一种方法是在之后获取对 BitmapDrawable
的引用您已经加载它并手动设置平铺模式以使用 setTileModeXY() 从代码中重复.
关于android - 重复位图在 View 的 state_pressed 上渲染不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17179492/
我是一名优秀的程序员,十分优秀!