android– 如何在SeekBar上显示最大值和最小值?

android– 如何在SeekBar上显示最大值和最小值?,第1张

概述我正在尝试做什么:>我想在Android应用程序中实现SeekBar,在SeekBar上我还要显示最大值最小值.最小值始终为0,但最大值取决于剪辑长度.(例如:0—180)>有没有办法显示用户移动SeekBar时选择的值(在搜索栏本身上)?我无法弄清楚,如何与androidSeekBar一起实现这一点,因为似乎没有

我正在尝试做什么:

>我想在Android应用程序中实现Seekbar,在Seekbar上我还要显示最大值和最小值.最小值始终为0,但最大值取决于剪辑长度. (例如:0 — 180)
>有没有办法显示用户移动Seekbar时选择的值(在搜索栏本身上)?

我无法弄清楚,如何与androID Seekbar一起实现这一点,因为似乎没有任何可用于显示值的选项.

解决方法:

I would like to implement a seekbar in an AndroID App. But on the
seekbar I would also like to display the max and min values. Min value
would always be 0 but max value is dependent on clip length. (Example:
0—180)

Is there a way to display the value (on the seek bar itself) that is selected when the user > moves the seekbar?

如果您希望这些值位于Seekbar之上,则扩展Seekbar类并覆盖onDraw方法.在调用super.onDraw(canvas)之后,您可以绘制自己的东西,例如Seekbar开始和结束时的最小/最大值或当前进度.制作看起来不错的东西(在所有看起来不同的Seekbars上)将会有点困难,因为您需要仔细计算绘制文本的位置和方式.

一个更简单的方法是使一个自定义组件包含Seekbar,左侧和右侧有一个TextVIEw(下面有一个可选的TextVIEw用于当前进度)并设置那些具有最小/最大值的组件(即使以编程方式设置最大值) ,最大的TextVIEw可以“跟随”这些变化).知道Seekbar的宽度和当前进度,可以轻松计算和更新进度.

第二种情况的一个小例子:

public static class SeekbarWithValues extends relativeLayout {    private int mMax = 100;    private TextVIEw mMinText;    private TextVIEw mMaxText;    private TextVIEw mCurrentText;    private Seekbar mSeek;    public SeekbarWithValues(Context context, AttributeSet attrs) {        super(context, attrs);        LayoutInflater.from(getContext()).inflate(                R.layout.content, this);        // the minimum value is always 0        mMinText = (TextVIEw) findVIEwByID(R.ID.minValue);        mMinText.setText("0");        mMaxText = (TextVIEw) findVIEwByID(R.ID.maxValue);        mCurrentText = (TextVIEw) findVIEwByID(R.ID.curentValue);        mSeek = (Seekbar) findVIEwByID(R.ID.seekbar);        mSeek.setMax(100);        mMaxText.setText(String.valueOf(mSeek.getMax()));    }    /**     * This needs additional work to make the current progress text stay     * right under the thumb drawable.     *      * @param newProgress     *            the new progress for which to place the text     */    public voID updateCurrentText(int newProgress) {        mCurrentText.setText(String.valueOf(newProgress));        final int padding = mMinText.getWIDth() + mSeek.getpaddingleft();        final int totalSeekWIDth = mSeek.getWIDth();        final relativeLayout.LayoutParams lp = (LayoutParams) mCurrentText                .getLayoutParams();        final int seekLocation = (mSeek.getProgress() * totalSeekWIDth)                / mMax - mCurrentText.getWIDth() / 2;        lp.leftmargin = seekLocation + padding;        mCurrentText.setLayoutParams(lp);    }    public Seekbar getSeekbar() {        return mSeek;    }    public voID updateSeekMaxValue(int newValue) {        mMax = newValue;        mMaxText.setText(mMax);        mSeek.setMax(mMax);    }}

内容布局在哪里:

<merge xmlns:androID="http://schemas.androID.com/apk/res/androID" ><TextVIEw    androID:ID="@+ID/minValue"    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content"    androID:layout_alignBottom="@+ID/seekbar"    androID:layout_alignParentleft="true"    androID:layout_aligntop="@ID/seekbar"    androID:gravity="center" /><TextVIEw    androID:ID="@+ID/maxValue"    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content"    androID:layout_alignBottom="@ID/seekbar"    androID:layout_alignParentRight="true"    androID:layout_aligntop="@ID/seekbar"    androID:gravity="center" /><Seekbar    androID:ID="@ID/seekbar"    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content"    androID:layout_toleftOf="@ID/maxValue"    androID:layout_toRightOf="@ID/minValue" /><TextVIEw    androID:ID="@+ID/curentValue"    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content"    androID:layout_below="@ID/seekbar"    androID:gravity="center" />

目前的文本往往比它应该更加令人满意,并且需要额外的工作才能将其置于寻求句柄之下.

总结

以上是内存溢出为你收集整理的android – 如何在SeekBar上显示最大值和最小值?全部内容,希望文章能够帮你解决android – 如何在SeekBar上显示最大值和最小值?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1097225.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存