Android Material Design Ripple Effect在Android5.0(SDK=21)以下Android版本崩溃问题解决
附录1的Android Ripple Effect水波波纹荡漾的视觉交互设计,在Android SDK版本21上运作良好,但是放到21版本以下,比如Android 4.0.3(SDK=15),就会导致整个APP崩溃,其中一个解决方案:以附录文章1为例,不仅需要在drawable-v21中写好ripple_effect.xml,同时需要再在普通的res/drawable下面放一个同名ripple_effect.xml文件,在res/drawable目录下放的ripple_effect.xml,目的就是为了向下兼容到低版本的Android设备,但是在Android低版本设备中,我把ripple effect退化成一个简单的点击背景变灰色的交互设计:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@android:color/white" android:state_window_focused="false" /> <item android:drawable="@android:color/darker_gray" android:state_pressed="true" /> <item android:drawable="@android:color/darker_gray" android:state_focused="true" /> <item android:drawable="@android:color/transparent" /> </selector>
这样就可以正常兼容低版本的Android设备了,但这个解决方案的遗憾就是只是解决了代码向下兼容到低版本Android设备的问题,代价是牺牲了Android Material Design的Ripple Effect水波波纹荡漾视觉交互设计效果。
附录:
1,《Android Material Design : Ripple Effect水波波纹荡漾的视觉交互设计》链接:http://blog.csdn.net/zhangphil/article/details/52451848