2016年5月24日星期二

自定义RatingBar,不同分辨率屏幕下图片拉伸或者显示不完整问题解决

<resources>
    <style name="myRatingBar" parent="@android:style/Widget.RatingBar">
       <item name="android:progressDrawable">@drawable/my_rating_bar</item>
       <item name="android:minHeight">16dip</item>
       <item name="android:maxHeight">16dip</item>
    </style>
</resources>
        如果需要适配多分辨率多屏幕密度的情况下,android:minHeight和 android:maxHeight这两个属性不管设置多大都不合适。一种屏幕合适了,在另外一个屏幕上,就可能显示不完整或者图片被拉伸。
        解决的方法如下:
step 1:将\\这两张图片分别拷贝到以下文件夹;
            \\
setp 2:修改android:minHeight 和 android:maxHeight 这两个属性的值为图片的实际高度,用px为单位。假设图片的尺寸为 36x30,修改后如下:
<resources>
    <style name="roomRatingBar" parent="@android:style/Widget.RatingBar">
       <item name="android:progressDrawable">@drawable/room_rating_bar</item>
       <item name="android:minHeight">30px</item>
       <item name="android:maxHeight">30px</item>
    </style>
</resources>
        修改完毕,在不同分辨率的手机下,都能正常显示。
注意:有的同学在替换图片后会发现,星星之间的挨的太近,没有间距。这个时候可以在切图的时候,在星星图片的左右两边都加上几个像素的透明边距。

没有评论:

发表评论