Android:以编程方式为ProgressBar / SeekBar设置maxHeight参数

Jor*_*mar 3 android view seekbar progress-bar

可以如下创建XML格式的SeekBar。

<SeekBar xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/bpseekbar"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_marginTop="3dp"
      android:max="100"
      android:maxHeight="8dp"
      ...
Run Code Online (Sandbox Code Playgroud)

现在,我要以编程方式进行此操作,因为我需要根据屏幕分辨率调整maxHeight(是的,我知道不应该这样做,但是我有这样做的正当理由)。除了无法找到如何设置maxHeight之外,以编程方式设置参数没有问题。我觉得我需要使用属性,但是我找不到确切的方法。有什么提示吗?

Poi*_*ull 5

这不是直接可能的。SeekBar(实际上是SeekBar扩展的ProgressBar)仅从XML布局属性获取maxHeight,没有相应的方法。

另外,在调用setProgressDrawable时,ProgressBar将其maxHeight增加到至少可绘制的高度。您可以利用这个。

另一种可能性是扩展SeekBar并提供自己的onMeasure方法。这实际上是使用maxHeight的地方。然后,您可以在xml布局中使用扩展的SeekBar。