SeekBar自定义样式

网上的SeekBar自定义样式的资料很多,大多是抄来抄去。我最近用到这个,也从网上抄了一个,但是遇到不少问题,其中一个就是SeekBar的背景条不显示,最后才找到解决方法。

1. 使用自定义SeekBar

    <SeekBar
        android:id="@+id/ctrl_seekBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:progressDrawable="@drawable/custom_seekbar"
        android:thumb="@drawable/cust_seekbar_thumb"
        android:maxHeight="4dp"
        android:minHeight="4dp" />

其中最重要的就是

android:progressDrawable="@drawable/custom_seekbar"

android:thumb="@drawable/cust_seekbar_thumb"

android:progressDrawable指定了seekbar的样式

android:thumb指定了seekbar的按钮

SeekBar效果图:

2. 自定义SeekBar: custom_seekbar

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape>
            <solid android:color="#ff58595c" />
            <size android:height="5dp" />
        </shape>
    </item>

    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <solid android:color="#ff58595c"/>
                <size android:height="5dp" />
            </shape>
        </clip>
    </item>

    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <solid android:color="#ff5292fb"/>
                <size android:height="5dp" />
            </shape>
        </clip>
    </item>

</layer-list>

seekbar共有3个状态条:background, progress, secondarProgress.

<layer-list>将多个图片或上面两种效果按照顺序层叠起来.

Android的文档中就专门提到了layer-list多用progressbar

关于shape,selector,layer-list参见:

Android: shape,selector,layer-list辨析

<clip>的功能就是裁剪

其它标签不说了.

我之前碰到的SeekBar的background条显示不出来就是因为把background也用clip包起来了,这是很多其它文章也是这么干的.真是害得我折腾了很久才找出原因.

3. Thumb 自定义cust_seekbar_thumb

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:state_pressed="false"
        android:drawable="@drawable/ic_seekbar" />
    <item android:state_focused="true" android:state_pressed="true"
        android:drawable="@drawable/ic_seekbar_down" />
    <item android:state_focused="false" android:state_pressed="true"
        android:drawable="@drawable/ic_seekbar_down" />
    <item android:drawable="@drawable/ic_seekbar" />
</selector>

4. 参考文献

[1] 自定义漂亮的Android SeekBar样式

[2] Android API Guids

注:文献1的background使用clip包起来的

时间: 2024-10-01 02:35:31

SeekBar自定义样式的相关文章

WPF DataGrid自定义样式

WPF DataGrid自定义样式 微软的WPF DataGrid中有很多的属性和样式,你可以调整,以寻找合适的(如果你是一名设计师).下面,找到我的小抄造型的网格.它不是100%全面,但它可以让你走得很远,有一些非常有用的技巧和陷阱. 在DataGrid中的最高水平,你可以改变的外观和感觉,通过设置一些: Property Type Values Default AlternatingRowBackground Brush Any Brush Null Background Brush Any

WPF自定义样式篇-DataGrid

WPF自定义样式篇-DataGrid 先上效果图: 样式: <!--DataGrid样式-->    <Style TargetType="DataGrid">        <Setter Property="RowHeaderWidth" Value="0"></Setter>        <Setter Property="AutoGenerateColumns"

超详细的Xcode代码格式化教程,可自定义样式

为什么要格式化代码 当团队内有多人开发的时候,每个人写的代码格式都有自己的喜好,也可能会忙着写代码而忽略了格式的问题. 在之前,我们可能会写完代码后,再一点一点去调格式,很浪费时间. 有了ClangFormat插件后,就可以一键把代码格式化成统一的样式,不仅节省了时间,也使得代码更规范.我们还可以定制自己喜欢的样式. 安装ClangFormat插件 可以手动安装(下载GitHub项目编译),也可以用Alcatraz(插件管理器)安装,都很简单,具体可以看我的文章<Xcode方便开发的插件推荐>

[android] 安卓自定义样式和主题

简单练习自定义样式和主题,样式是加在View上,主题是加在Application或者Activity上 styles.xml <?xml version="1.0" encoding="utf-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 自定义样式 --> <style name=&quo

纯css兼容个浏览器input[type=&#39;radio&#39;]不能自定义样式

各个浏览器对于表单input[type='radio'].input[type='checkbox']的样式总是各有差异 //html <div class="remember-account"> <input type="checkbox"> <span>记住账号</span> </div> //css .remember-account { display: inline-block; font-siz

很酷的伸缩导航菜单效果,可自定义样式和菜单项。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

制作自定义样式的窗口

不使用windows自带的窗口样式,使用自定义的客户区, <Window xmlns:my="clr-namespace:MiniFileTransferClient.Presentation.WPF.UILogic.ShowPanels" x:Class="MiniFileTransferClient.Presentation.WPF.MiniFileTransferViewer" xmlns="http://schemas.microsoft.c

WPF自定义控件与样式(7)-列表控件DataGrid与ListView自定义样式

一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: DataGrid自定义样式: ListView自定义样式: 二.DataGrid自定义样式 DataGrid是常用的数据列表显示控件,先看看实现的效果(动态图,有点大): DataGrid控件样式结构包括以下几个部分: 列头header样式 调整列头宽度的列分割线样式 行样式 行头调整高度样式 行头部样式

Android自定义样式

1.AndroidManifest.xml android:theme="@style/Theme.CustomDialog 样式要用:@style <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.fish.hello