12-28 Andorid中shape和selector的使用。

2016-12-28  本文已影响40人  知者半省者无

1.Shape

简介

作用:XML中定义的几何形状
位置:res/drawable/文件的名称.xml

使用的方法:

  1. Java代码中:R.drawable.文件的名称
    XML中:Android:background="@drawable/文件的名称"

Shape常用标签

属性:

shape中子节点的常用属性:

<solid > 填充

<stroke > 描边

<corners > 圆角

<corners>间隔

渐变

<gradient  
    android:endColor="#FFFFFF"  
    android:gradientRadius="50"  
    android:startColor="#ff8c00"  
    android:type="radial" />

Selector的使用

引言:选择器,在Android中常常用来做组件的背景。省去了代码控制实现组件再不同状态下的更换。
定义:状态列表 分为两种:color-Selector和drawable-Selector。


color-Selector

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
  <item
  android:color="hex_color"   //颜色值,   #RGB,$ARGB,#RRGGBB,#AARRGGBB
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>

示例:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
 android:color="#ffff0000"/> <!-- pressed -->
<item android:state_focused="true"
 android:color="#ff0000ff"/> <!-- focused -->
<item android:color="#ff000000"/> <!-- default -->

drawable-selector

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:constantSize=["true" | "false"]//drawable的大小是否当中状态变化,true表示是变化,false表示不变换,默认为false 
    android:dither=["true" | "false"]//当位图与屏幕的像素配置不一样时(例如,一个ARGB为8888的位图与RGB为555的屏幕)会自行递色(dither)。设置为false时不可递色。默认true 
    android:variablePadding=["true" | "false"] >//内边距是否变化,默认false 
    <item 
        android:drawable="@[package:]drawable/drawable_resource"//图片资源 
        android:state_pressed=["true" | "false"]//是否触摸 
        android:state_focused=["true" | "false"]//是否获取到焦点 
        android:state_enabled=["true" | "false"]//是否可用 
        android:state_activated=["true" | "false"]//是否激活 
        android:state_window_focused=["true" | "false"] />//所在窗口是否获取焦点
        android:state_hovered=["true" | "false"]//光标是否经过 
        android:state_selected=["true" | "false"]//是否选中 
        android:state_checkable=["true" | "false"]//是否可勾选 
        android:state_checked=["true" | "false"] />//是否勾选 
</selector>

示例:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_selected="true" android:drawable="@drawable/button_bg_press" /> 
    <item android:state_focused="true" android:drawable="@drawable/button_bg_press" /> 
    <item android:state_pressed="true" android:drawable="@drawable/button_bg_press" /> 
    <item android:drawable="@drawable/button_bg_normol" />
</selector>

调用:

<Button 
    android:id="@+id/bt_about" style="@style/Button_style" 
    android:background="@drawable/button_selector" 
    android:layout_width="250dp" 
    android:layout_height="50dp" 
    android:layout_margin="5dp" 
    android:textColor="@color/test_color_selector" 
    android:text="@string/about" />
上一篇下一篇

猜你喜欢

热点阅读