http://gundumw100.iteye.com/blog/1146527

 
上面这种3选1的效果如何做呢?用代码写? 
其实有更简单的办法,忘了RadioButton有什么特性了吗? 
我就用RadioButton实现了如上效果,其实很简单的。 
首先定义一张background,命名为radio.xml,注意该background必须为xml样式的图片: 
Xml代码  
  1. <?xml version="1.0" encoding="utf-8"?>   
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">   
  3.     <item   
  4.     android:state_checked="false"   
  5.     android:drawable="@drawable/tabswitcher_long" />   
  6.     <item   
  7.     android:state_checked="true"   
  8.     android:drawable="@drawable/tabswitcher_short" />   
  9. selector>   

这里我们只要关心state_checked状态就可以了。所以很简单的配置。 
接下来就是布局文件里面引用这张图片了: 
Java代码  
  1.         android:gravity="center"  
  2.         android:orientation="horizontal"    
  3.         android:layout_width="fill_parent"     
  4.         android:layout_height="wrap_content"  
  5.         >  
  6.         
  7.             android:id="@+id/btn_0"    
  8.             android:layout_width="fill_parent"     
  9.             android:layout_height="wrap_content"  
  10.             android:text="最新信息"   
  11.             android:textSize="17.0sp"     
  12.             android:textColor="@android:color/black"    
  13.             android:gravity="center"   
  14.             android:layout_weight="1"  
  15.             android:checked="true"  
  16.             android:button="@null"  
  17.             android:background="@drawable/radio"  
  18.             />    
  19.         
  20.             android:id="@+id/btn_1"  
  21.             android:layout_width="fill_parent"     
  22.             android:layout_height="wrap_content"  
  23.             android:text="在线专家"  
  24.             android:textSize="17.0sp"  
  25.             android:textColor="@android:color/black"    
  26.             android:gravity="center"  
  27.             android:layout_weight="1"  
  28.             android:button="@null"  
  29.             android:background="@drawable/radio"  
  30.             />    
  31.         
  32.             android:id="@+id/btn_2"  
  33.             android:layout_width="fill_parent"     
  34.             android:layout_height="wrap_content"  
  35.             android:text="预约服务"  
  36.             android:textSize="17.0sp"  
  37.             android:textColor="@android:color/black"    
  38.             android:gravity="center"  
  39.             android:layout_weight="1"  
  40.             android:button="@null"  
  41.             android:background="@drawable/radio"  
  42.             />    
  43.       

注意将android:button="@null"全部设为null,并且将android:background="@drawable/radio"设为刚才新建的图片。这样就完成了。 
一句代码都不用写! 

看看竖下来的效果: 
 

傍边有图标的怎么办? 

 
也很简单啦,只要在每个RadioButton上加android:drawableLeft="@drawable/tubiao_0"就可以了。 
另外要设置图标与文字的距离怎么办? 
有一个方法setCompoundDrawablePadding(pad)可以设置图标与文字的距离,对应的属性为android:drawablePadding。 

有了这招完全可以实现类似的n选1效果,看下面: 
 
 

应用: 
http://www.iteye.com/topic/1116261#2256664

更多相关文章

  1. 转:关于android中图片裁剪以及PorterDuffXfermode的使用经验小结
  2. Android基础开源应用项目
  3. Android(安卓)ApiDemos示例解析(162):Views->Layouts->TableLayo
  4. AndroidStudio快捷键汇总
  5. Android(安卓)实现 WheelView
  6. [Android][Memory Leak] InputMethodManager内存泄露现象及解决
  7. android中Spinner特效
  8. Android防止崩溃的库,有效的降低Crash率
  9. Android高手进阶教程(十)之----Android(安卓)PopupWindow的使用!

随机推荐

  1. 人机融合为什么这么难?
  2. “中华优秀科普图书榜”
  3. 并非所有信息都是等价的:
  4. 人机工程简史
  5. 算法的秘密+
  6. 人的认知特性与分析
  7. 为什么深绿系统不好用?
  8. 人的感觉分析
  9. 焦波:俺爹俺娘
  10. 小议人工智能为什么“不智能”