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程序设计有所帮助。

时间: 2024-09-23 06:24:36

Android开发之拖动条和评分组件用法分析的相关文章

Android开发入门(五)屏幕组件 5.4 TableLayout表格布局

TableLayout可以把视图views组织成"行"或"列".可以使用<TableRow>元素指定表格中的一行 .每一行又可以包含一个或多个视图.每行中的每个视图组成了表格的一个元素.每列的宽度,取决于这一 列中宽度最大的视图view. 观察main.xml中的代码: <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:androi

Android开发入门(五)屏幕组件 5.3 AbsoluteLayout绝对布局

使用AbsoluteLayout,可以指定它其中的子View的确切位置.观察如下main.xml中的代码: <?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" and

Android开发入门(五)屏幕组件 5.7 ScrollView滚动视图

ScrollView是一种特殊的FrameLayout,使用ScrollView可以使用户能够滚动一个包含views的列表,这样 做的话,就可以利用比物理显示区域更大的空间.有一点需要注意一下,那就是ScrollView只能包含一个子 视图view或ViewGroup(这个ViewGroup通常是LinearLayout). 不要混合使用ListView和ScrollView .ListView被设计用来显示一些相关的信息,同时,ListView也已经被优化了去显示大量的列表lists. 下面的

Android开发入门(五)屏幕组件 5.6 FrameLayout帧布局

FrameLayout就是屏幕上的一个"定位器",可以使用它去显示一个单一的视图.被添加到FrameLayout上 的视图views总是被固定在这个布局的左上角.考虑以下的代码: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" an

Android开发入门(五)屏幕组件 5.5 RelativeLayout相对布局

使用RelativeLayout,可以通过设置"相对位置"(每个View相对于另一个view的位置),来指定它所包 含的子view的位置.看下面main.xml中的代码: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" androi

Android开发之进度条

一.基础知识:   1.ProgressBar在界面文件XML中的布局: [html] <progressBar android:id="@+id/progressbar_updown"          android:layout_width="200dp"           android:layout_height="wrap_content"          style="?android:attr/progress

Android中SeekBar拖动条控件使用方法详解

SeekBar拖动条控件使用方法,具体内容如下 一.简介 1. 二.SeekBar拖动条控件使用方法 1.创建SeekBar控件 <SeekBar android:id="@+id/SeekBar1" android:layout_width="match_parent" android:layout_height="wrap_content" android:progress="30" /> 2.添加setOnS

Android开发中双进程守护的尝试与分析实例

最近在做一个Android的项目,其包含一个消息推送的后台服务.由于该服务可能会有重要的信息推送,因此并不希望当APP程序退出.APP程序被一键清理.APP被强制停止等用户操作发生时,这个后台服务也随之被杀死.这个问题也就是所谓的"内存永驻".关于这个问题,网上有很多说法,如调用startforehand函数以提高service的优先级.在service中创建一个不能被删掉的notification(或者产生一个其他的与用户界面交互的UI控件).在service的onDestroy函数

android开发环境遇到adt无法启动的问题分析及解决方法_Android

开始研究android开发,搭建开发环境的时候就出了问题--果然是好事多磨~ 安装了jdk,配置环境变量,安装了完整版的adt.创建了helloworld程序,启动的时候就报错 "Please ensure that adb is correctly located at 'D:\adt-bundle-windows-x86_64\sdk\platform-tools\adb.exe' and can be executed." 网上查了大量的资料,群里问了很多人,都说是配置环境有问题