免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1658 | 回复: 2

[Android] SeekBar 样式设置 [复制链接]

论坛徽章:
80
20周年集字徽章-庆
日期:2020-10-28 14:09:1215-16赛季CBA联赛之北京
日期:2020-10-28 13:32:5315-16赛季CBA联赛之北控
日期:2020-10-28 13:32:4815-16赛季CBA联赛之天津
日期:2020-10-28 13:13:35黑曼巴
日期:2020-10-28 12:29:1520周年集字徽章-周	
日期:2020-10-31 15:10:0720周年集字徽章-20	
日期:2020-10-31 15:10:07ChinaUnix元老
日期:2015-09-29 11:56:3020周年集字徽章-年
日期:2020-10-28 14:14:56
发表于 2015-08-19 17:39 |显示全部楼层
1 SeekBar简介
SeekBar是进度条。我们使用进度条时,可以使用系统默认的进度条;也可以自定义进度条的图片和滑块图片等。

2 SeekBar示例
创建一个activity,包含2个SeekBar。
第1个SeekBar是系统默认的SeekBar。
第2个SeekBar是自定义SeekBar,使用自定义的背景图和滑块图片。
  1. package com.skywang.control;

  2. import android.os.Bundle;
  3. import android.app.Activity;
  4. import android.util.Log;
  5. import android.widget.TextView;
  6. import android.widget.SeekBar;
  7. import android.widget.SeekBar.OnSeekBarChangeListener;

  8. public class SeekBarTest extends Activity implements SeekBar.OnSeekBarChangeListener{
  9.     private static final String TAG = "SKYWANG";

  10.     // 与“系统默认SeekBar”对应的TextView
  11.     private TextView mTvDef;
  12.     // 与“自定义SeekBar”对应的TextView
  13.     private TextView mTvSelf;
  14.     // “系统默认SeekBar”
  15.     private SeekBar mSeekBarDef;
  16.     // “自定义SeekBar”
  17.     private SeekBar mSeekBarSelf;
  18.    
  19.     @Override
  20.     protected void onCreate(Bundle savedInstanceState) {
  21.         super.onCreate(savedInstanceState);
  22.         setContentView(R.layout.seek_bar_test);
  23.         
  24.         // 与“系统默认SeekBar”对应的TextView
  25.         mTvDef = (TextView) findViewById(R.id.tv_def);
  26.         // “系统默认SeekBar”
  27.         mSeekBarDef = (SeekBar) findViewById(R.id.seekbar_def);
  28.         mSeekBarDef.setOnSeekBarChangeListener(this);

  29.         // 与“自定义SeekBar”对应的TextView
  30.         mTvSelf = (TextView) findViewById(R.id.tv_self);
  31.         // “自定义SeekBar”
  32.         mSeekBarSelf = (SeekBar) findViewById(R.id.seekbar_self);
  33.         mSeekBarSelf.setOnSeekBarChangeListener(this);
  34.     }   
  35.    
  36.    
  37.     @Override
  38.     public void onStopTrackingTouch(SeekBar seekBar) {
  39.         
  40.     }

  41.    
  42.     @Override
  43.     public void onStartTrackingTouch(SeekBar seekBar) {

  44.     }

  45.    
  46.     @Override
  47.     public void onProgressChanged(SeekBar seekBar, int progress,
  48.             boolean fromUser) {
  49.         Log.d(TAG, "seekid:"+seekBar.getId()+", progess"+progress);
  50.         switch(seekBar.getId()) {
  51.             case R.id.seekbar_def:{
  52.                 // 设置“与系统默认SeekBar对应的TextView”的值
  53.                 mTvDef.setText(getResources().getString(R.string.text_def)+" : "+String.valueOf(seekBar.getProgress()));
  54.                 break;
  55.             }
  56.             case R.id.seekbar_self: {
  57.                 // 设置“与自定义SeekBar对应的TextView”的值               
  58.                 mTvSelf.setText(getResources().getString(R.string.text_self)+" : "+String.valueOf(seekBar.getProgress()));
  59.                 break;
  60.             }
  61.             default:
  62.                 break;
  63.         }
  64.     }
  65. }
复制代码
代码说明:
要监听SeekBar的滑动消息,通过实现“SeekBar.OnSeekBarChangeListener”接口。这个接口中包含3个方法onStartTrackingTouch()、onStopTrackingTouch()和onProgressChanged()。

layout文件
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2.     xmlns:tools="http://schemas.android.com/tools"
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent"
  5.     android:orientation="vertical" >
  6.    
  7.     <TextView
  8.         android:id="@+id/tv_def"
  9.         android:layout_width="wrap_content"
  10.         android:layout_height="wrap_content"
  11.         android:text="@string/text_def" />
  12.    
  13.     <!--
  14.         max=100,代表它的取值范围是0-100,共101个值;
  15.         progress=10,代表默认值是10  
  16.     -->
  17.     <SeekBar
  18.         android:id="@+id/seekbar_def"
  19.         android:layout_width="620px"
  20.         android:layout_height="wrap_content"
  21.         android:max="100"
  22.         android:progress="10"
  23.         />
  24.    
  25.     <TextView
  26.         android:id="@+id/tv_self"
  27.         android:layout_width="wrap_content"
  28.         android:layout_height="wrap_content"
  29.         android:text="@string/text_self" />
  30.    
  31.     <!--
  32.         max=100,代表它的取值范围是0-100,共101个值;
  33.         progress=20,代表默认值是20
  34.         progressDrawable,表示SeekBar的背景图片
  35.         thumbe,表示SeekBar的滑块图片  
  36.     -->
  37.     <SeekBar
  38.         android:id="@+id/seekbar_self"
  39.         android:layout_width="620px"  
  40.         android:layout_height="wrap_content"
  41.         android:max="100"
  42.         android:progress="20"
  43.         android:progressDrawable="@drawable/bg_bar"  
  44.         android:thumb="@drawable/thumb_bar" />
  45.    
  46. </LinearLayout>
复制代码
自定义SeekBar的背景定义为:android:progressDrawable="@drawable/bg_bar"。
它调用的bg_bar.xml的内容如下:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  3.     <!-- 背景图 -->
  4.     <item android:id="@+android:id/background" android:drawable="@drawable/bar_dn" />
  5.     <!-- 第二进度图 -->
  6.     <item android:id="@+android:id/SecondaryProgress" android:drawable="@drawable/bar_dn" />
  7.     <!-- 进度度 -->
  8.     <item android:id="@+android:id/progress" android:drawable="@drawable/bar_up" />
  9. </layer-list>
复制代码



代码下载 资源下载

论坛徽章:
80
20周年集字徽章-庆
日期:2020-10-28 14:09:1215-16赛季CBA联赛之北京
日期:2020-10-28 13:32:5315-16赛季CBA联赛之北控
日期:2020-10-28 13:32:4815-16赛季CBA联赛之天津
日期:2020-10-28 13:13:35黑曼巴
日期:2020-10-28 12:29:1520周年集字徽章-周	
日期:2020-10-31 15:10:0720周年集字徽章-20	
日期:2020-10-31 15:10:07ChinaUnix元老
日期:2015-09-29 11:56:3020周年集字徽章-年
日期:2020-10-28 14:14:56
发表于 2015-08-22 14:41 |显示全部楼层
很好用的控件

论坛徽章:
80
20周年集字徽章-庆
日期:2020-10-28 14:09:1215-16赛季CBA联赛之北京
日期:2020-10-28 13:32:5315-16赛季CBA联赛之北控
日期:2020-10-28 13:32:4815-16赛季CBA联赛之天津
日期:2020-10-28 13:13:35黑曼巴
日期:2020-10-28 12:29:1520周年集字徽章-周	
日期:2020-10-31 15:10:0720周年集字徽章-20	
日期:2020-10-31 15:10:07ChinaUnix元老
日期:2015-09-29 11:56:3020周年集字徽章-年
日期:2020-10-28 14:14:56
发表于 2015-09-17 09:37 |显示全部楼层
转给有需要的人
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP