android - 如何获取SeekBar progress drawable的高度

标签 android android-seek

我在我的应用程序中定义了一个 SeekBar,如下所示:

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

我想在它旁边放置一个与 SeekBar 高度相同的图像。我需要以编程方式设置图像的高度,以便它在所有设备上保持不变。但是我无法获得 SeekBar 的高度。

下面的代码返回 View 的高度而不是 SeekBar。

 mReadingSeekBar = (ReadingSeekBar) findViewById(R.id.seekbar);
 mBarHeight = mReadingSeekBar.getHeight();

并且此代码也不起作用。它只返回 0:

mBarHeight = mReadingSeekBar.getProgressDrawable().getMinimumHeight();

有没有办法找到 SeekBar 的实际大小而不仅仅是 View 大小?

最佳答案

我想出了一个更好的方法来做到这一点。我在我的样式文件中设置了 ProgressDrawable 的高度,以便它在所有设备上保持相同的大小。下面是我在样式 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 progress drawable的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18740322/

相关文章:

android - 在 Android 中更新应用小部件中的 Intent

android - 我如何在android中的搜索栏中绘制可绘制的进度

android - 如何将android assets css文件加载到android WebView URL

借助 seekbar 进行放大和缩小的 Android 程序?

java - 如何准确地设置一个十进制值为 float 的搜索栏进度?

android - 播放媒体播放器时显示软键盘时 UI 卡住了?

java - Android (Java) JSON 被发送到服务器,但里面的数据不是 "seeing",而是对象的 toString

android - 如何在 Android 中以编程方式在 EditText 中设置 Id

java - Android Studio 需要哪个 JDK 版本(语言级别)?