Android中的<selector>
和<shape>
有什么区别?何时使用<selector>
和<shape>
?
答案 0 :(得分:3)
Android中
<selector>
和<shape>
有什么区别?
除了在布局资源中使用XML之外,它们是无关的。
何时使用
<selector>
和<shape>
?
<shape>
是一种在可绘制资源中定义a ShapeDrawable
的方法,用于表示具有各种边框和填充的矩形和椭圆形。
<selector>
是一种在可绘制资源中定义a StateListDrawable
的方法,用于根据正在应用此StateListDrawable
的小部件的状态指示要使用的其他可绘制对象。
因此,在按钮的上下文中,<selector>
会说出要用于普通背景,按下的背景,禁用的背景等等的内容。 <shape>
将用于提供这些州之一的实际背景。
您可以在the documentation中了解有关不同可绘制资源类型的更多信息。
答案 1 :(得分:1)
<selector>
元素描述XML文件中的ColorStateList
,ColorStateList
是一个对象,可以用作颜色,但是会根据视图的状态而改变颜色。
可用状态:
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:color="hex_color"
android:state_pressed=["true" | "false"]
android:state_focused=["true" | "false"]
android:state_selected=["true" | "false"]
android:state_checkable=["true" | "false"]
android:state_checked=["true" | "false"]
android:state_enabled=["true" | "false"]
android:state_window_focused=["true" | "false"] />
</selector>
<shape>
定义了几何形状,包括Drawable
的颜色和渐变。