Android自定义ScrollBar,Android必知必会-自定义Scrollbar样式
如果移动端访问不佳,请使用–>GitHub版
背景
设计师给的设计图完全依照 IOS 的标准来的,导致很多细节的控件都得自己重写,最近的设计图中有显示滚动条,Android 默认的滚动条样式(带描边)和设计图格格不入,无奈,只好研究下自定义 Scrollbar 样式。这里稍微整理下。
知识点
在ListView/ScrollView/RecyclerView中添加属性:
android:scrollbars="vertical"
android:scrollbarTrackVertical="@drawable/xxx_vertical_track"
android:scrollbarThumbVertical="@drawable/xxx_vertical_thumb"
android:scrollbars="horizontal"
android:scrollbarTrackHorizontal="@drawable/xxx_horizontal_track"
android:scrollbarThumbHorizontal="@drawable/xxx_horizontal_thumb"
android:scrollbarStyle="outsideInset"
android:scrollbarSize="4dp"
属性
效果
scrollbarThumbVertical[Horizontal]
短条
scrollbarTrackVertical[Horizontal]
长条,即背景
即scrollbaTrackxxx,scrollbarThumbxxx自定义的 xml 文件,放在Drawable中,track是指长条,thumb是指短条,然后再 xml 中定义短条和长条的样式。
需要注意
其中,scrollbaTrackxxx、scrollbarThumbxxx可以使用:
Shape自定义 Drawable
图片
.9.png
@color/xxx的方式使用颜色值
不可以直接使用#xxxxxx颜色值
android:scrollbarStyle
android:scrollbarStyle可以定义滚动条的样式和位置,可选值有insideOverlay、insideInset、outsideOverlay、outsideInset四种。
其中inside和outside分别表示是否在 view 的 padding 区域内,overlay和inset表示覆盖在 view 上或是插在 view 后面,所以四种值分别表示:
属性值
效果
insideOverlay
默认值,表示在padding区域内并且覆盖在view上
insideInset
表示在padding区域内并且插入在view后面
outsideOverlay
表示在padding区域外并且覆盖在view上
outsideInset
表示在padding区域外并且插入在view后面
Demo
下面是两个Demo:
color:
#CCFF6464
#00000000
drawable:scrollbar_vertical_thumb
Demo 1
layout:
android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbVertical="@drawable/scrollbar_vertical_thumb"
android:scrollbarSize="3dp"
android:scrollbars="vertical"
Demo 2
layout:
android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbVertical="@color/red_square"
android:scrollbarSize="3dp"
android:scrollbars="vertical"
效果图
默认样式 :
Demo 1 :
Demo 2:
总结
在查资料的过程中,发现滚动条也可以使用代码来画,这里不做过多介绍,有兴趣的可以研究一下。
PS:
Android自定义ScrollBar,Android必知必会-自定义Scrollbar样式相关推荐
- Android 性能优化必知必会(2020-5-16)
做了这么久性能相关的工作,也接触了不少模块,说实话要做好性能这一块,真心不容易.为什么这么说? 是因为需要接触的知识实在是太多了, Android 是一个整体,牵一发而动全身,不是说只懂一个模块就可以 ...
- 脑残式网络编程入门(三):HTTP协议必知必会的一些知识
为什么80%的码农都做不了架构师?>>> 本文原作者:"竹千代",原文由"玉刚说"写作平台提供写作赞助,原文版权归"玉刚说&q ...
- 操作系统:手把手带你扫盲 操作系统 的那些必知必会!
前言 操作系统 应是程序猿需掌握的知识,但往往会被忽略 今天,我将手把手带大家扫盲 操作系统 的那些必知必会!希望你们会喜欢. 目录 1. 跨进程通信方式(IPC) 注:此处给出移动端 Android ...
- asp sql ip地址排序_SQL必知必会读书笔记,30分钟入门SQL!
点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 来源:https://segmentfault.com/p/1210000011760 ...
- GitHub#SQL#:SQL必知必会
https://github.com/CyC2018/Interview-Notebook 一.基础 二.创建表 三.修改表 四.插入 五.更新 六.删除 七.查询 八.排序 九.过滤 十.通配符 十 ...
- MySQL必知必会学习历程(一)
MySQL必知必会学习历程(一) 前言 第1章 了解SQL 1.1 关键术语介绍 1.2 数据表解释实例 第2章 MySQL简介 2.1 关键术语介绍 2.2 安装mysql命令行实用程序(可选) 2 ...
- java面试必知必会
java面试必知必会 面向对象 成员变量成员方法 Integer相关 double 和 Double相关 多态,向上转型 hashcode.==.equals比较 java中子类继承父类时是否继承构造 ...
- 30 分钟读完《MySQL 必知必会》
第一章 了解 SQL 介绍几个数据库的概念 数据库(database) 通过DBMS创建和操纵的保存有组织的数据的容器(通常是一个文件或一组文件). 数据库软件/数据库管理系统(DBMS)访问数据库, ...
- 猿创征文|计算机类学生必知必会的开发工具
计算机类学生必知必会的开发工具目录 前言 一.浏览器工具 1.在线工具 2.插件扩展 二.优化电脑使用工具 1.notpad++ 2.plotplayer 3.Office Tool Plus--强大 ...
- 程序员必知必会之 word 篇
程序员必知必会之 word 篇 网易广州 赖勇浩 程序员必知必会之blog篇 地址:http://blog.csdn.net/lanphaday/archive/2007/08/16/1746852. ...
最新文章
- 都说过了,它跟蛇没关系
- 存储引擎——概述|| 各种存储引擎的特性(InnoDB||MyISAM||MEMORY||MERGE) ||存储引擎的选择
- 网络:301和302
- 过滤器Filter(17/4/8)
- Go 内存对齐的那些事儿
- 为多孔介质的当量直径_新型纳米多孔碳材料在催化剂载体方面的应用
- POJ-1236 Network of Schools 缩点
- python编写命令行框架_python的pytest框架之命令行参数详解(上)
- [活动]《博客园精华集》设计模式分册第2轮筛选结果公示
- 手把手教你 3 个 Linux 中快速检测端口的小技巧
- 用户、角色、权限管理-设计方案之权限检测
- 【车间调度】基于matlab遗传算法求解柔性车间调度问题【含Matlab源码 660期】
- GEE开发之Landsat_SR计算地表温度(不推荐)
- 【String-easy】551. Student Attendance Record I 学生迟到和旷课
- 原创【歌词类】雪中吟
- 纽约大学历年本科生录取数据分析
- <博弈论> HDU1846
- 关于ZXing二维码扫描的时候偶然出现数字问题
- ps国画效果案例制作教程和思路介绍
- python查答案_大学慕课Python编程基础答案查题公众号
热门文章
- 失业的程序员(三):口才帝和表情帝
- 主机之间ssh免密码登录
- HTML中id选择器和class选择器的区别(为什么id选择器不能重复)
- 如何给微信小程序搜索优化?
- java 堆外内存_详解Java堆外内存
- 和AI女友“关晓彤”在元宇宙谈了一场恋爱,但这结局我不能接受!| 巴比特体验官...
- 2021-07-16华硕物理机安装centos7与Windows10双系统
- 西安,又开始堵车了。。。
- 旺店通·旗舰奇门和金蝶云星空接口打通对接实战
- Xmanager7远程登录ubuntu20.04