笔记14--android中Shape、Selector

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子选项的属性:

  1. android:state_pressed="true/false"  
  2.   
  3.  “true”表示按下状态使用(例如按钮按下);“false”表示非按下状态使用。   
  4.   
  5.  android:state_focused="true/false"  
  6.   
  7. true”表示聚焦状态使用(例如使用滚动球/D-pad聚焦Button);“false”表示非聚焦状态使用。   
  8.   
  9.  android:state_selected="true/false"  
  10.   
  11. true”表示选中状态使用(例如Tab打开);“false”表示非选中状态使用。   
  12.   
  13.  android:state_active="true/false"  
  14.   
  15. true”表示可勾选状态时使用;“false”表示非可勾选状态使用。(只对能切换可勾选—非可勾选的构件有用。)   
  16.   
  17.   android:state_checkable="true/false"  
  18.   
  19.  “true”表示勾选状态使用;“false”表示非勾选状态使用。   
  20.   
  21.   android:state_checked="true/false"  
  22.   
  23. true”表示勾选状态使用;“false”表示非勾选状态使用。   
  24.   
  25.   android:state_enabled="true/false"  
  26.   
  27. true”表示可用状态使用(能接收触摸/点击事件);“false”表示不可用状态使用。   
  28.   
  29.  android:state_window_focused="true/false"  
  30.   
  31. true”表示应用程序窗口有焦点时使用(应用程序在前台);“false”表示无焦点时使用(例如Notification栏拉下或对话框显示)。   
  32. 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"使其透明。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值