android中的<selector>和<shape>有什么区别?

时间:2019-07-18 19:13:53

标签: android android-layout android-drawable

Android中的<selector><shape>有什么区别?何时使用<selector><shape>

2 个答案:

答案 0 :(得分:3)

  

Android中<selector><shape>有什么区别?

除了在布局资源中使用XML之外,它们是无关的。

  

何时使用<selector><shape>

<shape>是一种在可绘制资源中定义a ShapeDrawable的方法,用于表示具有各种边框和填充的矩形和椭圆形。

<selector>是一种在可绘制资源中定义a StateListDrawable的方法,用于根据正在应用此StateListDrawable的小部件的状态指示要使用的其他可绘制对象。

因此,在按钮的上下文中,<selector>会说出要用于普通背景,按下的背景,禁用的背景等等的内容。 <shape>将用于提供这些州之一的实际背景。

您可以在the documentation中了解有关不同可绘制资源类型的更多信息。

答案 1 :(得分:1)

<selector>元素描述XML文件中的ColorStateListColorStateList是一个对象,可以用作颜色,但是会根据视图的状态而改变颜色。

可用状态:

<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的颜色和渐变。