最近在开发一个需求的时候,要做一个seekbar,它是这样的:

背景和进度条都好说,但是那个滑动按钮就不好整了,里面的图片是用户的头像,需要动态更新的,而且用户的头像也没有这个黄色的外边框啊,我查了一下seekbar的方法,发现seekbar.setThumb(Drawable drawable),那我怎么才能生成这样的drawable呢,网上找了半天,发现了LayerDrawable,看着很眼熟,具体查看之后才发现,原来LayerDrawable就是我们在xml里定义的layer-list,就是一个层叠的drawable。

Drawable[] array = new Drawable[2];
array[0] = getContext().getResources().getDrawable(R.drawable.bg_tots_select_seek_thumb);
array[1] = frontDrawable;
LayerDrawable result = new LayerDrawable(array);
result.setLayerInset(0, 0, 0, 0, 0);
result.setLayerInset(1, 7, 7, 7, 7);
mSeekBar.setThumb(result);
mSeekBar.setThumbOffset(0);

所以我就用这个方法生成了seekbar的thumb,LayerDrawable需要传入一个drawable数组,数组里的drawable从下到上层叠在一起,setLayerInset()方法是给drawable设置padding的,第一个参数是drawable的位置,后面四个参数对应着left,top,right,bottom的padding。

生成了drawable之后用seekbar.setThumb方法就能把drawable设置成按钮了,最好setThumbOffset是指按钮不能超出seekbar的宽度。

LayerDrawable相关推荐

  1. [原创]android使用代码生成LayerDrawable的方法和注意事项

    为了有更好的UI体验,一般我们会把button.textview等控件的背景设置上阴影.传统的做法是美工提供一张具有阴影效果的nine patch图,然后将其在xml文件中添加到background属 ...

  2. LayerDrawable层叠样式layer

    2019独角兽企业重金招聘Python工程师标准>>> layer-list可以将多个图片按照顺序层叠起来. 语法:在drawalbe/drawable-layer.xml中 < ...

  3. android 图片叠加xml,Drawable子类之——LayerDrawable (图层叠加)

    本文出自 "阿敏其人" 简书博客,转载或引用请注明出处. LayerDrawable对应的XML的根元素是,,它使一种层次化显示的Drawable集合.也就说,可以通过显示由多个D ...

  4. Android:使用LayerDrawable动态生成四宫格头像(包含双人、三人头像)

    其实用自定义View也可以实现,我比较懒,就用LayerDrawable来创建一个新的Drawable资源实现. 举例4宫格,9宫格原理类似,每个图标的位置需要用边距慢慢调成预期的效果 效果如下: 双 ...

  5. android沉浸式状态栏 图片背景,Android 补充 LayerDrawable 沉浸式状态栏

    小菜前些日子整理了两次小小的沉浸式状态栏的总结:Android 沉浸式状态栏的多种样式 和 Android 沉浸式状态栏以及伪沉浸式状态栏.今天小菜再稍稍补充一点,Java/Kotlin 代码中设置 ...

  6. Android Drawable 详解(教你画画!)

    参考 1.Android中的Drawable基础与自定义Drawable 2.android中的drawable资源 3.Android开发之Shape详细解读 Drawable分类 No xml标签 ...

  7. Android Layer List 使用实现实例

    Layer List是Anroid中的一种图形的方式,它是通过叠加若干张图片的方式来形成最终的图片,最终的图片在代码中表现为一个LayerDrawable对象. 效果图:第一张是默认显示,第二张为按改 ...

  8. android layerlist bitmap,android – 在LayerListDrawable中更改Bitmap Drawable

    这是我的LayerList的简化版本.它在项目中有一个位图以防止缩放.我想以编程方式更改此位图的drawable.有没有办法做到这一点? android:id="@+id/item" ...

  9. android xml opacity,Android Drawable详解

    前言 Drawable就是一个可画的对象,表示一种可以在Canvas上进行绘制的抽象的概念,其可能是一张(BitmapDrawable),也可能是一个图形(ShapeDrawable),还有可能是一个 ...

最新文章

  1. 工业相机和镜头说明与图像采集
  2. F5定时切换维护页面
  3. GitHub, Google Code, and other
  4. Linux性能分析工具与图形化方法
  5. 贷款用途有什么限制?非法用途有什么后果?
  6. 工科神器matlab高校遭禁用,网友:关我p事,python可取而代之
  7. 小汤学编程之JavaEE学习day04——EL表达式、JSTL
  8. SpringBoot使用CommandLineRunner和ApplicationRunner执行初始化业务
  9. Spark团队开源新项目MLflow发布0.2版本,内置TensorFlow集成
  10. imp 只导表前10条数据_2020年玉石行情,从10条数据就能略窥一二
  11. ceph cluster monitor
  12. 吉他音阶训练——问题解答 (三)
  13. 换个服务器后网页加载很慢,打开网页很缓慢?换个DNS轻松解决问题
  14. linux 6重启网卡,centos 网卡重启方法
  15. python sklearn逻辑回归 sgd和lr_LR逻辑回归模型的原理、公式推导、Python实现和应用...
  16. Bhuman应用篇——带球及踢球
  17. android热门搜索标签,Android网易云历史搜索和热门标签
  18. 服务器选共享IP还是独立IP好
  19. web前端期末大作业 HTML+CSS+JavaScript web课程设计网页规划与设计 企业网站制作
  20. 笔记:区块链基础(一)

热门文章

  1. java List分组
  2. python脚本工作实例
  3. DuiVision开发教程(7)-系统预定义控件、动作和事件
  4. 数形结合「求解」希尔伯特第13个数学难题
  5. Linux SPI 应用编程
  6. Ajax上传文件,后端返回文件访问路径
  7. 计算机系统的组成观评课报告,教师远程研修观课评课报告
  8. 鸿蒙os 2.0玩吃鸡,华为鸿蒙OS2.0[敏感词汇屏蔽]能简测:极致画质下的吃鸡王者更胜EMUI11...
  9. java学业有成_祝福学业有成的句子
  10. 陈二狗的妖孽人生经典语录