Android自定义SeekBar滑动显示数字

Android自定义SeekBar滑动显示数字,第1张

概述先来上个效果图:当滑动时:数值显示,滑动停止时显示数字,使用FrameLayout结合SeekBar。

先来上个效果图:

当滑动时:数值显示,滑动停止时显示数字,使用FrameLayout结合Seekbar。

首先我们看看。

Layout:

<?xml version="1.0" enCoding="utf-8"?><merge xmlns:androID="http://schemas.androID.com/apk/res/androID" xmlns:tools="http://schemas.androID.com/tools"> <relativeLayout  androID:ID="@+ID/wrapper_seekbar_indicator"  androID:layout_wIDth="wrap_content"  androID:layout_height="wrap_content">  <ImageVIEw   androID:ID="@+ID/img_seekbar_indicator"   androID:layout_wIDth="wrap_content"   androID:layout_height="wrap_content"   androID:layout_alignParenttop="true" />  <TextVIEw   androID:ID="@+ID/txt_seekbar_indicated_progress"   androID:layout_wIDth="wrap_content"   androID:layout_height="wrap_content"   androID:gravity="center"   androID:textcolor="#333333"   androID:textSize="@dimen/space_12"   tools:text="100" /> </relativeLayout> <relativeLayout  androID:ID="@+ID/wrapper_seekbar"  androID:layout_wIDth="wrap_content"  androID:layout_height="wrap_content">  <Seekbar   androID:ID="@+ID/seekbar"      androID:layout_wIDth="match_parent"   androID:layout_height="wrap_content" /> </relativeLayout></merge>

需要自定义可再上面修改图片问题颜色等,或者自己封装起来。

初始化函数。

private voID init(Context context,AttributeSet attrs,int defStyle) {  VIEw vIEw = LayoutInflater.from(context).inflate(    R.layout.vIEw_seekbar_indicated,this);  bindVIEws(vIEw);  if (attrs != null)   setAttributes(context,attrs,defStyle);  mSeekbar.setonSeekbarchangelistener(this);  mTextVIEwProgress.setText(String.valueOf(mSeekbar.getProgress()));  getVIEwTreeObserver().addOnGlobalLayoutListener(    new VIEwTreeObserver.OnGlobalLayoutListener() {     @TargetAPI(Build.VERSION_CODES.JELLY_BEAN)     @OverrIDe     public voID onGlobalLayout() {      mMeasureDWIDth = mSeekbar.getWIDth()        - mSeekbar.getpaddingleft()        - mSeekbar.getpaddingRight();      mSeekbar.setpadding(        mSeekbar.getpaddingleft(),mSeekbar.getpaddingtop()          + mWrapperIndicator.getHeight(),mSeekbar.getpaddingRight(),mSeekbar.getpaddingBottom());      setIndicator();      getVIEwTreeObserver()        .removeOnGlobalLayoutListener(this);     }    });  // mWrapperIndicator.setVisibility(VIEw.GONE); }

主要是根据是否有改变,和触摸进行判断字和图片的显示。

 @OverrIDe public voID onProgressChanged(Seekbar seekbar,int progress,boolean fromUser) {  setIndicator();  if (mOnSeekbarchangelistener != null)   mOnSeekbarchangelistener.onProgressChanged(seekbar,progress,fromUser); } @OverrIDe public voID onStartTrackingtouch(Seekbar seekbar) {  if (mOnSeekbarchangelistener != null) {   mOnSeekbarchangelistener.onStartTrackingtouch(seekbar);   mWrapperIndicator.setVisibility(VIEw.VISIBLE);  } } @OverrIDe public voID onStopTrackingtouch(Seekbar seekbar) {  if (mOnSeekbarchangelistener != null) {   mOnSeekbarchangelistener.onStopTrackingtouch(seekbar);   mWrapperIndicator.setVisibility(VIEw.GONE);  } }

废话也不多说,原理很简单。

工程地址:
https://github.com/xiaoli1993/SeekBarIndicated/tree/47ffcc890fb9c7000bb20d9b248620564c2c8122

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的Android自定义SeekBar滑动显示数字全部内容,希望文章能够帮你解决Android自定义SeekBar滑动显示数字所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1148076.html

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

发表评论

登录后才能评论

评论列表(0条)

保存