Android开发之拖动条和评分组件用法分析
本文实例讲述了android开发之拖动条和评分组件用法。分享给大家供大家参考,具体如下:
今天闲着没事做就拿出了android书接着学习,android就是组件多有时候还会弄混淆了。这次介绍的是拖动条和评分组件,这2个组件也是超级简单的
下面就一个一个的来研究。
1. 拖动条,就类似android手机上调节音量那个,该组件和对话框不同的是用户可以操作。该组件的xml表现形式如下
<seekbar android:id="@+id/seek" android:layout_marginleft="20dip" android:layout_width="fill_parent" android:layout_height="wrap_content"/>
光这样太枯燥了,这里我做了个拖动切换图片的小例子。这里就要介绍下拖动条的长度了这个长度是可控制的像这里我有5张图片拖动条的size就是5.这个设置我直接写在了程序里。实现很简单就是在拖动条的基础上加个imageview,然后对拖动条进行拖动的监听值改变了就切换imageview就好了。下面是主要代码。
bar=(seekbar)this.findviewbyid(r.id.seek); imageview=(imageview)this.findviewbyid(r.id.img); bar.setmax(5); bar.setonseekbarchangelistener(new seekbar.onseekbarchangelistener() { public void onstoptrackingtouch(seekbar seekbar) { // todo auto-generated method stub } public void onstarttrackingtouch(seekbar seekbar) { // todo auto-generated method stub } public void onprogresschanged(seekbar seekbar, int progress, boolean fromuser) { //切换图片 imageview.setimageresource(imagedata[seekbar.getprogress()]); } });
效果图如下所示,我觉得还是挺好的。
2. 下面就是评分插件了,android默认情况下是五角星,如果有必要可以弄成别的
这里我弄了一种自定义的类型,来看下吧
(1)在drawable下面弄个xml文件内容如下
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+android:id/background" android:drawable="@drawable/star_empty" /> <item android:id="@+android:id/secondaryprogress" android:drawable="@drawable/star_empty" /> <item android:id="@+android:id/progress" android:drawable="@drawable/star_full" /> </layer-list>
star_empty是灰色的五角星,star_full是黄色的五角星。上面的配置文件理解起来也很简单,下面就把这个样式嵌入到评分组件上,首先还是写个样式文件
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="ratingbarstyle" parent="@android:style/widget.ratingbar"> <item name="android:progressdrawable"> @drawable/starconfig </item> <item name="android:minheight">53dip</item> <item name="android:maxheight">53dip</item> </style> </resources>
顺便说明下starconfig就是上面那个配置文件,下面就是标签了,该组件的常用属性是步长、星星的个数就像下面这样
<ratingbar android:id="@+id/rating" android:numstars="5" android:stepsize="1" style="@style/ratingbarstyle" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
后面也自然是事件处理了
rbar.setonratingbarchangelistener(new ratingbar.onratingbarchangelistener() { public void onratingchanged(ratingbar ratingbar, float rating, boolean fromuser) { int num=(int)rating; string result=null; switch (num) { case 1: result="非常不满意"; break; case 2: result="不满意"; break; case 3: result="还可以"; break; case 4: result="满意"; break; case 5: result="非常满意"; break; default: break; } toast.maketext(mydailogactivity.this, result, 1).show(); } });
来看下效果吧
更多关于android相关内容感兴趣的读者可查看本站专题:《android基本组件用法总结》、《android开发入门与进阶教程》、《android布局layout技巧总结》、《android视图view技巧总结》、《android编程之activity操作技巧总结》、《android资源操作技巧汇总》及《android控件用法总结》
希望本文所述对大家android程序设计有所帮助。
下一篇: PHP实现的AES 128位加密算法示例