我试图在Android的Seekbar上放置一些刻度标记指示器.我能够生成带有刻度线的背景,但是我无法找到一种方法将刻度线与实际的Seekbar线对齐.从屏幕截图中可以看到,刻度线实际上在Seekbar行之前开始.
我可以通过反复试验找到距离,但是我怀疑在每台设备上它都将保持不变.我还注意到线条和背景边缘之间的空间与拇指滑块的半径相同.但是我找不到确定该半径的方法,并且再次不确定该半径是否适用于所有设备.
我知道有可用的自定义搜寻栏,但我试图避免添加第三方依赖项.
解决方法:
这使用getThumb().getMinimumWIDth()来近似于Seekbar的行的开始处的偏移量.它似乎可以工作,但不确定是否可以在所有设备上使用.
更新:此代码确实适用于默认情况,但是如果您更改填充,该代码将中断.最好使用getpaddingleft()和getpaddingRight()来确定滑块的长度和位置.这些函数通常将返回getThumb().getMinimumWIDth()/ 2,除非填充或缩略图已更改. getPaddlingleft()和getpaddingRight()将始终有效.
Bitmap b= Bitmap.createBitmap(w, h, Bitmap.Config.RGB_565); Canvas c=new Canvas(b); Paint p=new Paint(); p.setcolor(color.WHITE); int offset=this.getThumb().getMinimumWIDth(); float interval=(float)((wIDth-offset*1.0)/24); for(int i=0;i<25;i++){ float x=i*interval+offset/2; c.drawline(x,0,x,height,p); c.drawText(Integer.toString(i),x,height,p); }
总结 以上是内存溢出为你收集整理的将刻度线对准Android SeekBar全部内容,希望文章能够帮你解决将刻度线对准Android SeekBar所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)