系统自带的SeekBar组件的样式较为老土,已经不能满足广大开发者的需求了,这里给大家介绍一个简单快捷的定制自己的SeekBar样式的方法,不必重写哦!
1.准备几张个性化的图片,一张是拖动条背景图,一张是进度条图,一张是拖动条图。
这里给几张示范图:
:拖动条背景图
:进度条图
:拖动条图
2.在res/drawable 目录下新建一个xml文件 ,配置信息如下:
seekbar_progress.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"> // 背景项
<nine-patch android:src="@drawable/progress_background" /> // 背景图 // 这里使用9文件,因此这么配置如果使用的是普通图片可直接使用<drawable />标签,或者使用<shape />标签,自定义图形
</item>
<item android:id="@android:id/progress"> // 进度项
<clip>
<nine-patch android:src="@drawable/progress_progress" /> // 进度图
</clip>
</item>
</layer-list>
3.接下来<SeekBar ... />标签中添加如下参数:
android:progressDrawable="@drawable/seekbar_progress"
android:thumb="@drawable/thumb_drawable"
好了,经过上面的三个步骤,就可以轻松的实现自定义的SeekBar视图了。看下效果吧!
附:这里再贴一个使用<shape />标签为SeekBar设置背景和进度的xml配置文件,注意和上面的使用9文件的比对:
<?xml version="1.0" encoding="utf-8"?>
<!-- ChenJianLi Code: View: Seekbar
滑动时的背景效果 -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 背景 -->
<item android:id="@android:id/background">
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="#ffffffff"
android:centerColor="#fffffff0"
android:centerY="0.75"
android:endColor="#fffffafa"
android:angle="270"
/>
</shape>
</item>
<!-- 第二进度条 -->
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="#8000cdcd"
android:centerColor="#8000bfff"
android:centerY="0.75"
android:endColor="#a000b2ee"
android:angle="270"
/>
</shape>
</clip>
</item>
<!-- 第一进度条 -->
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="#ff00ffff"
android:centerColor="#ff00ced1"
android:centerY="0.75"
android:endColor="#ff00f5ff"
android:angle="270"
/>
</shape>
</clip>
</item>
</layer-list>
- 大小: 598 Bytes
- 大小: 714 Bytes
- 大小: 1.1 KB
- 大小: 947 Bytes
分享到:
相关推荐
在Android开发中,SeekBar是一个非常常用的控件,它允许用户通过滑动来选择一个介于最小值和最大值之间的数值。通常,SeekBar是水平布局的,但有时开发者可能需要创建一个竖向的SeekBar以适应特定的界面设计或用户...
这个实例不仅展示了如何自定义Android控件,还强调了对触摸事件的处理和视图绘制的重要性。开发者可以通过这个实例学习到如何扩展Android SDK提供的原生组件,以满足更复杂或独特的需求。 此外,为了使竖直SeekBar...
在Android开发中,SeekBar是一个非常常见的控件,用于让用户通过滑动来选择一个介于最小值和最大值之间的值。然而,系统默认的SeekBar是矩形的,有时为了追求更美观或者符合特定设计需求,开发者可能希望对其进行...
在Android开发中,SeekBar是一个非常常见的控件,用于实现用户通过滑动来选择一个介于最小值和最大值之间的数值。通常,它被用来调节音量、亮度或者进度等。本篇文章将深入探讨如何在Android中自定义SeekBar,以满足...
在Android开发中,SeekBar是一个非常常见的控件,通常用于用户选择一个介于两个值之间的数值。默认情况下,SeekBar是水平布局的,用户通过滑动来调整进度。然而,在某些应用场景中,例如在垂直滚动列表或者特定设计...
在Android应用开发中,Android ...对于初学者来说,掌握这些基本控件的使用是至关重要的,它们能帮助你更好地理解和实践Android应用开发。这个"android 基本控件demo大集合"提供了丰富的示例,是学习和参考的好资源。
在Android开发中,SeekBar是一个非常常见的控件,用于实现用户通过滑动来调整某个值,例如音量控制或进度选择。然而,有时我们可能需要更个性化的功能,比如在滑动过程中显示实时的提示信息或者自定义SeekBar的外观...
在Android开发中,基本控件是构建用户界面的基础,它们为用户提供与应用交互的方式。本文将深入探讨Android的基本控件及其使用方法,这对初学者来说是非常重要的基础知识。 1. **TextView**:TextView是最基础的...
这篇教程将详细介绍12种常见的Android控件及其基本用法,帮助你更好地理解和运用这些控件来构建美观且功能丰富的应用程序。 1. **Button(按钮)**:Button是最基础的控件,用于触发一个操作。可以通过设置text属性...
2. **SeekBar控件**:SeekBar是Android UI组件之一,它允许用户通过触摸滑动来选择一个介于两个值之间的数值。开发者可以自定义它的最小值、最大值和默认值,常用于音量、亮度、进度等控制场景。 3. **自定义控件**...
在Android开发中,SeekBar是一个非常常见的控件,用于让用户通过滑动来选择一个介于最小值和最大值之间的数值。这个“Android SeekBar弹框”示例提供了一个独特的功能,即在用户拖动SeekBar时,会有一个弹出的视图...
通过研究这个竖直SeekBar的源码,开发者可以学习如何自定义Android控件,理解触摸事件处理,以及如何创建流畅的动画效果。这对于提高Android UI设计和开发能力非常有帮助。同时,这也是一个很好的实践案例,展示了...
在Android开发中,SeekBar是一种常见的UI控件,用于让用户通过滑动条来选择一个介于最小值和最大值之间的数值。然而,标准的SeekBar只支持单向滑动,即从左到右。"android双向SeekBar"则扩展了这一功能,允许用户在...
在Android开发中,SeekBar是一个非常常见的控件,用于让用户通过滑动来选择一个数值或进度。在标准的Android SDK中,SeekBar的外观和行为是预设的,但开发者可以根据需求进行自定义,以提供更个性化的用户体验。在这...
Android控件(Widgets)是Android应用程序UI设计的核心组成部分,包括按钮(Button)、文本框(EditText)、图片视图(ImageView)、列表视图(ListView)、网格视图(GridView)、滑动选择器(SeekBar)、进度条...
在Android开发中,SeekBar是一个非常常见的控件,用于实现用户通过滑动来调节数值或进度的功能。本篇文章将深入探讨Android SeekBar的源码,帮助开发者理解其内部工作原理,以便更好地利用它来构建用户界面。 ...
在Android应用开发中,UI设计是至关重要的,而SeekBar作为一款常见的进度条控件,广泛应用于音量控制、音乐播放进度显示以及视频播放进度展示等多个场景。本教程将详细介绍如何在Android开发中实现 SeekBar 的简单...
在Android应用开发中,SeekBar是用户界面(UI)中常用的一种控件,它允许用户通过滑动条来...通过阅读和理解提供的源码,开发者不仅可以学习到如何自定义Android控件,还能将这个功能应用于自己的应用,提升用户体验。