android smartbar,android seekbar 踩坑之路_雨夜天空的博客-程序员宅基地

技术标签: android smartbar  

最近项目中有用到seekbar,之前对这东西不太了解,趁机来踩坑。

seekbar样式

按我觉得Material 中的还不算难看了。但是美工给了自己的样式,还是得改。

主要有这2个属性:

android:thumb="@drawable/thumb"

android:progressDrawable="@drawable/seekbar_progress"

thumb 指的是进度条上那个滑块,progressDrawable 指的是进度条。

d7eb29d3d5c4

seekbar

这是progressDrawable :

这里说一下,android:id="@android:id/background" 背景指的是上图中灰色的部分。android:id="@android:id/progress"是蓝色部分。自己一开始把secondaryProgress 和background 给搞混了。

d7eb29d3d5c4

thumb的话就是简单的一张图片,再指定一下大小,seekbar默认是有10dp 的height的。

android:maxHeight="5dip"

android:minHeight="5dip"

这样大概就能得到图中的样子了。

然后,最后。跑起来发现滑块thumb四周竟然不是透明的。扯蛋! 赶紧去看了一下icon 发现icon四周是透明的没错。又一阵蛋疼。查一下发现,原来 The Material seek bar has split track enabled by default

所以我们要把它disable掉。

android:splitTrack="false"

Over

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34131379/article/details/117592814

智能推荐

C#中 支线程Invoke和BeginInvoke用法和区别_me.begininvoke 堵塞主线程-程序员宅基地

当支线程调用winfrom中的控件:第一种办法:禁止编译器对跨线程访问做检查: public Form1() { InitializeComponent(); // 加入这行 Control.CheckForIllegalCrossThreadCalls = false; ..._me.begininvoke 堵塞主线程

'Install app for SharePoint': Sideloading of apps is not enabled on this site-程序员宅基地

http://blog.lekman.com/2012/11/sharepoint-2013-sideloading-of-apps-is.htmlSolution: You need to enable the Sideloading feature on the site.1. Download and install the SharePoint Online Manageme...

25个人围成一个圈,从第1个人开始顺序报号,凡报号为3和3的倍数者退出圈子,找出最后留在圈子中的人原来的序号_由25人围坐成圆圈,先从任意一人_小仙女ya的博客-程序员宅基地

25个人围成一个圈,从第1个人开始顺序报号,凡报号为3和3的倍数者退出圈子,找出最后留在圈子中的人原来的序号。【设计思想】可以用链表方式实现。首先按照1~25号的顺序建立链表,1~25号存放在链表的数据区,从链表头开始数,数到3或3的倍数的结点,删除该结点,一直到链表结束;重复上述过程一直到链表中只剩下两个结点,读出最后两个结点的数据区的数据就是最后的答案#include <stdio.h>#include <stdlib.h>#include <string.h&_由25人围坐成圆圈,先从任意一人

Python Dataframe 指定多列去重、求差集-程序员宅基地

去重指定多列去重,这是在dataframe没有独一无二的字段作为PK(主键)时,需要指定多个字段一起作为该行的PK,在这种情况下对整体数据进行去重。主要用到了drop_duplicates方法,并设置参数subset为多个字段名构成的数组。&gt;&gt;&gt;import pandas as pd &gt;&gt;&gt;data={'state':[1,1,2,2,1,2,2],'...

在QEMU中添加新的QMP命令_qmp qemu-程序员宅基地

在QEMU中添加新的QMP命令QMP(就是QEMU Monitor Protocol)命令由结构mon_cmd_t定义,该结构在monitor.c的开头被定义。注意查看它的成员以及该结构上面的注释。为了添加新的QMP命令,需要修改qemu-monitor.hx注意查看最开始的说明:DEFHEADING() 用于在help text和texi中增加标题头处_qmp qemu

字符设备 register_chrdev_region()、alloc_chrdev_region() 和 register_chrdev()-程序员宅基地

1. 字符设备结构体 内核中所有已分配的字符设备编号都记录在一个名为 chrdevs 散列表里。该散列表中的每一个元素是一个 char_device_struct 结构,它的定义如下: static struct char_device_struct { struct char_device_struct *next; // 指向散列冲突链表中的下一

随便推点

长度自适应 自动换行Flowlayout_flowlayout自动换行-程序员宅基地

import android.annotation.SuppressLint;import android.content.Context;import android.util.AttributeSet;import android.view.View;import android.view.ViewGroup;/** * 根据子View的宽度排列的流式布局 */public _flowlayout自动换行

android 自定义组件:购买数量,带减少增加按钮_android 数字增减 组件-程序员宅基地

对于大多数的商城APP项目,都会有商品数量的增加,减少按钮,对此记录下封装:public class AmountView extends LinearLayout implements View.OnClickListener, TextWatcher { private static final String TAG = "AmountView"; private int p..._android 数字增减 组件

JS 类的创建继承 与 new原理实现_js通过new一个类,成员是被复制吗-程序员宅基地

目录1. 类的创建工厂模式构造函数模式原型模式组合模式2. 类的继承原型链继承构造继承实例继承拷贝继承组合继承寄生组合继承3. new 的原理实现学习和参考于:JS定义类的六种方式详解JS实现继承的几种方式JavaScript深入之创建对象的多种方式以及优缺点js new一个对象的过程,实现一个简单的new方法(一)类的创建1. 工厂模式fun..._js通过new一个类,成员是被复制吗

织梦dedecms实现列表页 间隔双样式列 循环_织梦系统dedecms实现列表页双样式_传说里的哥的博客-程序员宅基地

{dede:arclist}<div class="solution-contents [field:global function=MagicVar("l-to-r","r-to-l")/]"> <div class="solution-contents-txt"> <h1>[field:title/]</h1> <h4> [field:description /]</h4._织梦系统dedecms实现列表页双样式

MyBatis常用sql语句编写(基于MySQL数据库)-程序员宅基地

创建一张表t_user用于作示例:CREATE TABLE `t_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `name` varchar(20) DEFAULT NULL COMMENT '姓名', `sex` char(1) DEFAULT NULL COMMENT '性别:1.男 2.女 3.保密...

CCNP——OSPF:开放式最短路径协议-程序员宅基地

CCNP——OSPF:开放式最短路径协议思维导图

推荐文章

热门文章

相关标签