关于SeekBar拖动时有一个跟着动的TextView

最近开发有做到关于SeekBar的,UI在跟我谈论时建议我SeekBar拖动时最好TextView跟着SeekBar的进度动。当时在网上查阅资料,只找到一个,不过看他代码比较复杂,还需要自定义View,而我是一个比较懒的人,做事也喜欢偷懒,所幸让我找到了偷懒的方法。

代码很简单,因为是工作的项目代码,所以只贴出一部分,如果各位看官有什么疑问或者指导,请在评论区指出,非常感谢。

private SeekBar.OnSeekBarChangeListener MyDistanceListener = new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {


}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {

}

@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
tv_seekbar_distance.setText(progress);
int position = seekBar_distance.getProgress(); //seekbar当前进度
float x = seekBar.getWidth();//seekbar的当前位置
float seekbarWidth = seekBar_distance.getX() ; //seekbar的宽度
float width = (position*x)/100+seekbarWidth; //seekbar当前位置的宽度
tv_seekbar_distance.setX(width);
}
};


 

不会做gif图- -,请各位将就着看一下吧

如果要做竖的seekbar也是同理,我就只贴核心代码了

int position = Math.abs(seekBar_height.getProgress()-100); //用当前进度减100取绝对值
float y = seekBar_height.getHeight();
float seekbarHeight = seekBar_height.getY();
float height = (position*y)/100+seekbarHeight;
tv_seekbar_height.setY(height);

需要注意的一点就是竖的seekbar从下往上滑对应的进度是100-0,所以position是当前进度减100再取绝对值。

好啦,我的第一篇博客就这样了,总觉得我的表达能力很有问题,望各位看官谅解一下。

发布了1 篇原创文章 · 获赞 1 · 访问量 3098
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览