您的位置:首页 > 移动开发 > Android开发

笔记14--android中Shape、Selector

2014-04-07 20:25 405 查看
Shape和Selector可为控件显示提供一些特效。
这俩都在res/drawable路径下,drawable文件夹需自己新建。要创建Shape或Selector,只要在项目中新建XML时,Resource Type要选择drawable。直接看下图:



1、shape属性介绍

solid:实心,就是填充的意思。可指定填充颜色。

gradient:渐变。android:startColor和android:endColor分别为起始和结束颜色,android:angle是渐变角度,必须为45的整数倍。
另外渐变默认的模式为android:type="linear",即线性渐变,可以指定渐变为径向渐变,android:type="radial",径向渐变需要指定半径android:gradientRadius="50"。

stroke:描边(即设置边框显示格式)。color设置颜色,width设置描边的宽度。当然可把描边弄成虚线的形式:

android:dashWidth="5dp"//android:dashWidth表示'-'这样一个横线的宽度
android:dashGap="3dp"//表示之间隔开的距离
corners:圆角(比如为TextView的四个角默认为方形,可设置为圆角显示)。radius:角的弧度,值越大角越圆。

padding:跟xml中一样。

2、Selector介绍

只有item一个子选项,可在item子选项中写别的选项,比如Selector。介绍下item子选项的属性:

android:state_pressed="true/false"  

  

 “true”表示按下状态使用(例如按钮按下);“false”表示非按下状态使用。
  

  

 android:state_focused="true/false"  

  

“true”表示聚焦状态使用(例如使用滚动球/D-pad聚焦Button);“false”表示非聚焦状态使用。
  

  

 android:state_selected="true/false"  

  

“true”表示选中状态使用(例如Tab打开);“false”表示非选中状态使用。
  

  

 android:state_active="true/false"  

  

“true”表示可勾选状态时使用;“false”表示非可勾选状态使用。(只对能切换可勾选—非可勾选的构件有用。)
  

  

  android:state_checkable="true/false"  

  

 “true”表示勾选状态使用;“false”表示非勾选状态使用。
  

  

  android:state_checked="true/false"  

  

true”表示勾选状态使用;“false”表示非勾选状态使用。
  

  

  android:state_enabled="true/false"  

  

“true”表示可用状态使用(能接收触摸/点击事件);“false”表示不可用状态使用。
  

  

 android:state_window_focused="true/false"  

  

“true”表示应用程序窗口有焦点时使用(应用程序在前台);“false”表示无焦点时使用(例如Notification栏拉下或对话框显示)。
  

android:background----默认时的背景图片

使用些xml文件:

    1.在listview中配置android:listSelector="@drawable/list_item_bg"

    2.在listview的item中添加属性android:background=“@drawable/list_item_bg"即可实现,

    3.在java代码中使用:Drawable drawable = getResources().getDrawable(R.drawable.list_item_bg); 

    ListView.setSelector(drawable);同样的效果。

    但是这样会出现列表有时候为黑的情况,需要加上:android:cacheColorHint="@android:color/transparent"使其透明。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: