欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android开发之拖动条和评分组件用法分析

程序员文章站 2022-10-29 17:05:58
本文实例讲述了android开发之拖动条和评分组件用法。分享给大家供大家参考,具体如下: 今天闲着没事做就拿出了android书接着学习,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()]);
  }
});

效果图如下所示,我觉得还是挺好的。

Android开发之拖动条和评分组件用法分析

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开发入门与进阶教程》、《android布局layout技巧总结》、《android视图view技巧总结》、《android编程之activity操作技巧总结》、《android资源操作技巧汇总》及《android控件用法总结

希望本文所述对大家android程序设计有所帮助。