转载请标明出处:
http://blog.csdn.net/tyzlmjj/article/details/50096777
本文出自:【M家杰的博客】
概述
点击效果在安卓的原生开发中无处不见,主要是为了对用户的操作在视觉上进行反馈。这个反馈很平常也很重要。而安卓5.0开始引入的全新设计Material Design真的超赞!特别是触摸反馈的波纹效果,可惜这个波纹效果只支持5.0及以上的版本,应该是出于性能的考虑!坑爹啊!
但是既然5.0以上可以用酷炫的点击效果,那就不能浪费要用起来,这篇博客前面先讲下Button和ImageView点击效果的基本实现,然后再讲下我个人如何处理兼容Material 设计效果
按钮点击效果基本实现
Button点击
Button的点击效果最简单的实现方法就是为android:background
属性设置drawable文件。
drawable文件的写法很多,这里就拿官方的例子拿来讲解,如下:
btn_default.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="true"
android:drawable="@drawable/btn_default_normal" />
<item android:state_window_focused="false" android:state_enabled="false"
android:drawable="@drawable/btn_default_disabled" />
<item android:state_pressed="true"
android:drawable="@drawable/btn_default_pressed" />
<item android:state_focused="true" android:state_enabled="true"
android:drawable="@drawable/btn_default_focused" />
<item android:state_enabled="true"
android:drawable="@drawable/btn_default_normal" />
<item android:state_focused="true"
android:drawable="@drawable/btn_default_disabled_focused" />
<item
android:drawable="@drawable/btn_default_disabled" />
</selector>
上面代码中selector
用于建立状态列表,里面的每个<item>
用于说明状态并给予图像(这里是用9png图片)。其实就是else if
语句写了好几个,从上往下当某个<item>
条件满足时就会应用它,后面的<item>
就不管了,所以<item>
的顺序也是很重要的。有关状态列表的更多信息:点我
这份XML代码非常细致的区分出了5种状态并对