博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android SeekBar自定义使用图片和颜色显示
阅读量:6835 次
发布时间:2019-06-26

本文共 2946 字,大约阅读时间需要 9 分钟。

  hot3.png

案例使用的图片如下:

                         

1.在res/drawable目录下新增一个xml风格文件,seekbar_define_style.xml

2.在res/drawable下定义个seekbar_thumb.xml文件

 

3.在res/layut下定义布局资源文件seekbar_define.xml

   
   
    
 

4.定义java文件通过 引用布局文件:

 

package com.test;import android.R.integer;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.widget.SeekBar;import android.widget.SeekBar.OnSeekBarChangeListener;import android.widget.TextView;public class SeekBarDemo_DefineDemo extends Activity {	private SeekBar seekBar;	private TextView textView_one, textView_two;	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.seekbar_define);		seekBar = (SeekBar) findViewById(R.id.seekBar);		textView_one = (TextView) findViewById(R.id.seekbar_tetview_one);		textView_two = (TextView) findViewById(R.id.seekbar_tetview_two);		seekBar.setOnSeekBarChangeListener(seekbarChangeListener);	}	private OnSeekBarChangeListener seekbarChangeListener = new OnSeekBarChangeListener() {		// 停止拖动时执行		@Override		public void onStopTrackingTouch(SeekBar seekBar) {			// TODO Auto-generated method stub			textView_two.setText("停止拖动了!");		}		// 在进度开始改变时执行		@Override		public void onStartTrackingTouch(SeekBar seekBar) {			// TODO Auto-generated method stub			textView_two.setText("进度开始改变");		}		// 当进度发生改变时执行		@Override		public void onProgressChanged(SeekBar seekBar, int progress,				boolean fromUser) {			textView_two.setText("正在进行拖动操作,还没有停下来一直再拖动");			Message message = new Message();			Bundle bundle = new Bundle();// 存放数据			float pro = seekBar.getProgress();			float num = seekBar.getMax();			float result = (pro / num) * 100;			bundle.putFloat("key", result);			message.setData(bundle);			message.what = 0;			handler.sendMessage(message);		}	};	/**	 * 用Handler来更新UI	 */	private Handler handler = new Handler() {		@Override		public void handleMessage(Message msg) {			textView_one.setText("当前拖动位置占 :       "					+ msg.getData().getFloat("key") + "/100");		}	};}

最后执行效果:

 程序启动后的默认显示

 

拖动过程中的显示

 

停止拖动后的显示

 二:使用颜色显示,和尚面是一样的,只有我们定义颜色资源来替代图片资源文件seekbar_define_color_style.xml:如下:

之后再SeekBar标签使用如下属性进行引入:其他保持不变

android:progressDrawable="@drawable/seekbar_define_color_style"

执行效果:

下面一个SeekBar是自定义颜色效果

 

由于SeekBar的属性thumb引入了自定义的seekbar_thumb.xml文件,拖动图标是我们自定义的图片:除去这个属性

android:thumb="@drawable/seekbar_thumb"

就回复系统默认状态效果最后效果如下:

拖动按钮系统风格

我们可以通过颜色值再次休息seekbar_thumb.xml文件,使拖动按钮设置成自定义颜色:

 

 

 

 

 

 

 

转载于:https://my.oschina.net/amigos/blog/60181

你可能感兴趣的文章
Tuning 05 Sizing other SGA Structure
查看>>
用 Qt Creator 开发非 Qt 的 C/C++ 程序
查看>>
Android-Cannot merge new index 66195 into a non-jumbo instruction的解决的方法
查看>>
解决 com.sun.*包导入错误
查看>>
【WP 8.1开发】如何动态生成Gif动画
查看>>
C#零基础入门08:代码规范
查看>>
关于php的mysqlnd驱动
查看>>
Response
查看>>
人人都看得懂的正则表达式教程
查看>>
python matplotlib 绘图
查看>>
Uncaught RangeError: Maximum call stack size exceeded解决思路
查看>>
运用.net core配合VS 2015制作nuget包
查看>>
JSP三大指令 /9大内置对象 /Javabean / EL
查看>>
WebPack系列:Webpack编译的代码如何在tomcat中使用时静态资源路径不对的问题如何解决...
查看>>
《HelloGitHub》之GitHub Bot
查看>>
node.js常见的一些错误信息
查看>>
[LintCode] Longest Increasing Continuous Subsequence 最长连续递增子序列
查看>>
华为的端口范围配置命令
查看>>
CVE-2014-4114 和 CVE-2014-3566
查看>>
数学图形(1.29) cochleoid曲线
查看>>