我的应用程序中定义了seekbar,如下所示:

 <SeekBar
    android:id="@+id/seekbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

我想在它旁边放一个和seekbar一样高的图像。我需要以编程方式设置图像的高度,以便它在所有设备上保持不变。但是我无法得到seekbar的高度。
下面的代码返回视图的高度,而不是seekbar。
 mReadingSeekBar = (ReadingSeekBar) findViewById(R.id.seekbar);
 mBarHeight = mReadingSeekBar.getHeight();

这个代码也不起作用。它只返回0:
mBarHeight = mReadingSeekBar.getProgressDrawable().getMinimumHeight();

有没有办法找到seekbar的实际大小,而不仅仅是视图大小?

最佳答案

我想出了更好的办法。我在样式文件中设置了progressdrawable的高度,以便在所有设备中保持相同的大小。下面是我在Styles XML文件中声明它的方式:

<style name="tallerBarStyle" parent="@android:style/Widget.SeekBar">
        <item name="android:indeterminateOnly">false</item>
        <item name="android:progressDrawable">@drawable/styled_progress</item>
        <item name="android:indeterminateDrawable">@drawable/styled_progress</item>
        <item name="android:minHeight">8dp</item>
        <item name="android:maxHeight">21dp</item>
    </style>

然后在我的seekbar中使用它,如下所示:
<SeekBar
    android:id="@+id/seekbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="@style/tallerBarStyle" />

关于android - 如何获取SeekBar进度可绘制对象的高度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18740322/

10-12 03:32