android多段seekbar

最近项目中需要实现一个功能,用seekbar来实现,需要将seekbar分为4段,seekbar最大值为120,然后有一个吸附效果,不多说,上两张效果图:

             

当滑动条值小于33时,为0;当滑动条值在33到70时,为45;当滑动条值为70到104时,为80;当大于104时,为最大值120。

最开始一直使用的是一个单独的seekbar,在onProgressChanged方法中,时时判断seekbar的progress,然后设置吸附效果,同时更改thumb的图片。然后在滑动条的onStopTrackingTouch方法中发送控制命令,然后等待服务器返回数据更新ui界面。然后问题来了,我在handler中调用到seekbar设置thumb的方法后,设置thumb图片后,thumb消失了。网上查资料说什么需要设置thumb的bounds。照搬过来发现没起作用。只要调用setThumb方法,thumb就消失。反反复复,始终得不到解决,项目又追的急。突然想到一个办法,虽然拙劣,但是实现效果没问题。在seekbar下边先放一个imageview,然后,在seekbar的onProgressChanged方法中根据progress来更改这个imageview的图片,然后设置seekbar的background为透明“#00000000”。然后拖动seekbar,实现了滑动条分段且更改thumb的效果。

开始上代码:

myVerticalSeek_new_wind = (MySeekBar) findViewById(R.id.verticalSeekBar_new_wind);
myVerticalSeek_new_wind.setOnSeekBarChangeListener(onSeekBarChangeListener);
然后seekbar的方法中:

private OnSeekBarChangeListener onSeekBarChangeListener = new OnSeekBarChangeListener() {

		@Override
		public void onProgressChanged(MySeekBar VerticalSeekBar, int progress,
				boolean fromUser) {

				//新风  0   33    66  100 						    
				
				if(progress<=33){
					progress = 0;
					myVerticalSeek_new_wind.setProgress(progress);
					new_wind_background_image.setBackgroundResource(R.drawable.new_wind_back_zero1);
					
				}else if(progress>33 && progress<=70){
					progress = 45;
					myVerticalSeek_new_wind.setProgress(progress);
					new_wind_background_image.setBackgroundResource(R.drawable.new_wind_back_one1);
					
				}else if(progress>70 &&progress<=104){
					progress = 80;
					myVerticalSeek_new_wind.setProgress(progress);
					new_wind_background_image.setBackgroundResource(R.drawable.new_wind_back_two1);
					
				}else if(progress>104){
					progress =120;
					myVerticalSeek_new_wind.setProgress(progress);
					new_wind_background_image.setBackgroundResource(R.drawable.new_wind_back_three1);
					
				}
							
		}

		@Override
		public void onStartTrackingTouch(MySeekBar VerticalSeekBar) {


		}

		@Override
		public void onStopTrackingTouch(MySeekBar VerticalSeekBar) {
				
				
			sendControlNewWindSpeedValue(VerticalSeekBar.getProgress());
				
		}

	};




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值