Android SeekBar 自定义样式小技巧

1,554 阅读1分钟

动态设置 MaxHeight

通过反射设置

seekBar?.let {
            val clazz = it.javaClass.superclass.superclass
            val mMaxHeight = clazz.getDeclaredField("mMaxHeight")
            mMaxHeight.isAccessible = true
            mMaxHeight.set(it,2.toPx())
            val mMinHeight = clazz.getDeclaredField("mMinHeight")
            mMinHeight.isAccessible = true
            mMaxHeight.set(it,2.toPx())
        }
  • 关于toPx()
    fun Int.toPx(): Int = (this * Resources.getSystem().displayMetrics.density).toInt()
    
  • 设置maxHeight,控制progressBar最大高度
  • 设置minHeight,保证thumb居中