Android开发之拖动条和评分组件用法分析
作者:青蛙小王子 发布时间:2022-01-15 02:55:18
标签: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程序设计有所帮助。


猜你喜欢
- 目录springboot autoconfig的一些实验SpringBoot autoconfig部分注解说明SpringBoot auto
- 大家好,今天我和大家分享一下用Java编写日历表,我用了3种方式实现这一功能的。首先我们来看看一个日历表有什么特征。在这里我就把我电脑上的日
- 第1部分 HashSet介绍HashSet 简介HashSet 是一个没有重复元素的集合。它是由HashMap实现的,不保证元素的顺序,而且
- 前言Java8新特性java.time.*包学习。 自从java发布模式变更就发现自己有些跟不上他们的速度,java8还有不少没有用透而9、
- Gson是一个Java库,用来实现Json和Java对象之间的相互转换。Gson是一个托管在https://github.com/googl
- 一、项目简述功能: 主页显示商品; 所有蛋糕商品展示,可进行商品搜索; 点击商品进入商品详情页,具有立即购买功能,可增减购买商品数量亦可手动
- 一、简介当我们没有在子类构造函数中写上 base(),默认会先调用父类中无参的构造函数,再调用子类。当在有参构造函数后写上base时,只调用
- 这篇文章主要介绍了Java方法重载Overload原理及使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- java中方法参数传递方式是按值传递。如果参数是基本类型,传递的是基本类型的字面量值的拷贝。如果参数是引用类型,传递的是该参量所引用的对象在
- 之前调用 WebService 都是直接添加服务引用,然后调用 WebService 方法的,最近发现还可以使用 Http 请求调用 Web
- 本文实例讲述了Android编程实现实时监听EditText文本输入的方法。分享给大家供大家参考,具体如下:平时在做Android开发过程中
- JavaConfig,是在 Spring 3.0 开始从一个独立的项目并入到 Spring 中的。JavaConfig 可以看成一个用于完成
- 这是Hadoop学习全程记录第1篇,在这篇里我将介绍一下如何在Linux下安装Hadoop1.x。先说明一下我的开发环境:虚拟机:VMwar
- 使用BufferedReader(缓存读取流)可以每次读取文件的一行。对于文件内容如果是按行为单位排列的话,则使用BufferedReade
- SqlMapConfig.xml的约束,也就是Mybatis主配置文件的约束<?xml version="1.0"
- 相关方法:wait():一旦执行此方法,当前线程就进入阻塞状态,并释放同步监视器。notify():一旦执行此方法,就会唤醒被wait的一个
- 首先在命令行创建一个PhoneGap工程phonegap create . "jspdf.sample" "J
- 详解HDFS多文件Join操作的实例最近在做HDFS文件处理之时,遇到了多文件Join操作,其中包括:All Join以及常用的Left J
- 开放端口安全组没开放端口是原罪!!!导致好多BUG费时费力。Hbase悄悄 * 的用了好多端口,比如被我抓到的42239,直接搜索报错药不对症
- 常需要对list进行排序,小到List<String>,大到对自定义的类进行排序。不需要自行归并或堆排序。简单实现一个接口即可。