android ListView的overscroll(模糊渐变效果)


当滑动到边界的时候,如果再滑动,就会触发这个效果,产生渐变。
在资源文件里,是overscroll_edge跟overscroll_glow。
但如果像我这样,想用HorizontalScrollView来模拟gallery来做水平滑动条的话,滑动到头尾的时候,越界效果会有碍整体的表现,那就只能无情的关闭他了..

关闭方法一,在xml中设置属性
android:overScrollMode=”never”
关闭方法二,使用代码
setOverScrollMode(OVER_SCROLL_NEVER)

当然..API中大大的Since: API Level 9..说明这一切都是2.3以后的东西..
所以果断要做一个版本判断

public static int getAndroidSDKVersion() {
int version;
try {
version = Integer.valueOf(android.os.Build.VERSION.SDK);
} catch (NumberFormatException e) {
Log.e(e.toString());

}
return version;
}

>9就行….


其他方法:

这个东西叫edge glow,也就是边缘发光,是可以禁用的。
在这个类里面:android.widget.AbsListView,有两个成员变量,mEdgeGlowTop和mEdgeGlowBottom,它们就是代表顶部和底部的拉伸的效果。我们可以用反射的形式,将它们设置为null。

Java code
?
1
2
3
4
5
6
  
Class<?> c = (Class<?>) Class.forName(m_className);
Field acEdgeGlowTop    = c.getDeclaredField( "mEdgeGlowTop" );
Field acEdgeGlowBottom = c.getDeclaredField( "mEdgeGlowBottom" );
acEdgeGlowTop.set(listView,  null );
acEdgeGlowBottom.set(listView,  null );


我以前尝试过更改这个颜色,系统默认是黄色(3.0以下),我通过反射改为另外的形式,所以,我觉得把他们设置为null,应该就可以去掉。会不会出异常,我没有试过。楼出可以尝试一下。

你可能感兴趣的:(android ListView的overscroll(模糊渐变效果))