
seekbar简单使用(一)
发布日期:2021-05-09 18:26:46
浏览次数:20
分类:精选文章
本文共 2264 字,大约阅读时间需要 7 分钟。
Android自定义SeekBar实现进度条美化
在Android开发中,SeekBar是一种常用的用户交互组件,通常用于音乐播放器、视频播放器等应用中。为了提升用户体验,许多开发者会对SeekBar进行自定义美化。本文将详细介绍如何实现一个自定义的SeekBar,包括布局文件的修改、图标和进度条颜色的定制以及进度值的动态更新。
一、修改activity_main布局文件
首先,我们需要在activity_main
布局文件中添加SeekBar组件。以下是修改后的布局文件内容:
二、创建自定义图标
我们需要在drawable
文件夹中创建两个新文件:shape_circle.xml
和layer_progress.xml
。
1. shape_circle.xml
2. layer_progress.xml
三、实现SeekBar值更新
在MainActivity
类中,我们需要监听SeekBar的值变化,并将其显示在TextView中。以下是代码实现:
public class MainActivity extends AppCompatActivity { private SeekBar seekBar; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); seekBar = (SeekBar) findViewById(R.id.progress); textView = (TextView) findViewById(R.id.text1); seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { textView.setText("Value:" + Integer.toString(progress)); } @Override public void onStartTrackingTouch(SeekBar seekBar) { Log.e("------------", "开始滑动!"); } @Override public void onStopTrackingTouch(SeekBar seekBar) { Log.e("------------", "停止滑动!"); } }); }}
4.1 SeekBar滑动事件处理
onProgressChanged
方法:当SeekBar的滑块位置发生改变时,会调用此方法。在此方法中,我们可以直接使用当前滑块的位置值progress
,并将其显示在TextView中。onStartTrackingTouch
方法:当用户开始滑动SeekBar时,触发此方法,可以用于日志记录或其他初始化操作。onStopTrackingTouch
方法:当用户停止滑动SeekBar时,触发此方法,可以用于日志记录或其他释放操作。
4.2 UI布局优化
为了提升用户体验,我们可以对SeekBar的布局进行优化:
- 设置SeekBar的高度为
wrap_content
,即根据内容自动调整高度。 - 使用
layout_toLeftOf
属性将SeekBar与TextView并列显示,确保布局更加合理。 - 设置SeekBar的内凹部分颜色、边框宽度等属性,以达到美化效果。
通过以上步骤,我们已经成功实现了一个自定义美化的SeekBar,并且能够实时显示SeekBar的滑动值。这个实现不仅提升了用户体验,也为后续开发提供了灵活的自定义空间。
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月05日 04时06分13秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
深入探索Android热修复技术原理读书笔记 —— 热修复技术介绍
2019-03-06
Python大神编程常用4大工具,你用过几个?
2019-03-06
一文带你了解图神经网络
2019-03-06
centos7一步一步搭建docker jenkins 及自定义访问路径重点讲解
2019-03-06
【Flink】Flink 底层RPC框架分析
2019-03-06
MySQL错误日志(Error Log)
2019-03-06
oracle使用DBMS_RANDOM包生成随机数据
2019-03-06
C++高精度模板
2019-03-06
联赛模拟测试23 D. 真相 思维题
2019-03-06
SSISDB2:SSIS工程的操作实例
2019-03-06
业务工作流平台设计(八)
2019-03-06
解决:angularjs radio默认选中失效问题
2019-03-06
windows环境下安装zookeeper(仅本地使用)
2019-03-06
缓冲区溢出实例(一)--Windows
2019-03-06
Badboy录制脚本时,提示脚本错误的解决方法
2019-03-06
PHP一句话木马小总结与SQL语句写一句话木马
2019-03-06
关于计数排序
2019-03-06
Python中字符串前添加r ,b, u, f前缀的含义
2019-03-06