码迷,mamicode.com
首页 > 其他好文 > 详细

seekbar的尺寸定义精要

时间:2015-07-10 11:06:07      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

seekbar背景的定制是一件麻烦的事情,而且最好是用shapedrawable去定制(这样可以任意拉伸),如果直接用图片,则注意的事项就会很多了,否则一般情况下总会有各种不如意。最近做UI遇到了seekbar必须用到图片去填充的情况,定义尺寸的时候费了很多劲。效果如下图:

技术分享

明显是一个背景图和thumb,没有progress,而且配上屏幕适配 的问题,费了很大劲。

顺便提及,其实很多情况下,例如button、seekbar、imagebutton、imageview等等wrap_content设置background的时候,图像出现意外拉伸或缩小,其实是由于图像在drawable的目录不对引起的(而不是设置minheight和minwidth的问题,设置这个确实能解决问题,但是图像可能会因为拉伸变得模糊,因为并不是这个引起的,根本原因要清楚),笔者此项目是在屏幕密度为160dpi的车机上运行的,对应的drawable应放置在mdpi的文件夹下,一开始时候我是放在hdpi(240dpi)文件夹下的,背景显示在车机上,总会缩小1/3,因为android加载图片时候,已经根据目录帮你算好了在屏幕上应该显示多少dp,例如在hpi文件夹下的100px的图片,android会认为你是在240dpi的屏幕上运行,要显示出100px,应该是66.7dp的长度,这时你如果在160dpi的设备商运行,显示效果还是66.7dp的效果,即66.7px

我最终的布局参数是:

<SeekBar 
                android:id="@+id/splash"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:minHeight="145dp"
                android:maxHeight="145dp"
                android:maxWidth="482dp"
                android:minWidth="482dp"
                android:progressDrawable="@drawable/radio_dash"
                android:thumb="@drawable/radio_dash_drag"
                android:progress="20"
                android:max="100"
                android:paddingLeft="1dp"
                android:paddingRight="1dp"
                android:thumbOffset="1dp"
                />

其中,min和max两个参数决定组件的最终长宽,layout_width和height如果也设置为固定值,则如果滑块比背景大,多余的部分就不会显示。thumboffset是滑块相对于背景的起始部分,设置为0则滑块的左边缘会与背景的左边缘对齐,设置为正值则会expand背景,这时需要设置padding让expand出背景的滑块显示出来,达到滑块的中心跟背景的起点对齐的效果。

终于写完了...看客诸君看懂了吗?有更好的见解欢迎一起分享。

 

seekbar的尺寸定义精要

标签:

原文地址:http://www.cnblogs.com/gangmiangongjue/p/4631100.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!