自定义RatingBar图像从drawable-mdpi而不是正确的文件夹中提取

时间:2014-04-02 02:45:43

标签: android xml android-custom-view ratingbar

我正在使用带有自定义星形图像的自定义评级栏,但它正在从错误的目录中提取图像。我有三星Galaxy S3所以它应该使用drawable-xhdpi中的图像,但它使用drawable-mdpi中的图像。

如何让我的自定义评分栏从正确的目录中提取图像?

styles.xml

<style name="CustomRatingBar" parent="@android:style/Widget.RatingBar">
    <item name="android:progressDrawable">@drawable/rating_bar_full</item>
</style>

抽拉/ rating_bar_full.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+android:id/background"
          android:drawable="@drawable/rating_empty" />

    <item android:id="@+android:id/secondaryProgress"
          android:drawable="@drawable/rating_empty" />

    <item android:id="@+android:id/progress"
          android:drawable="@drawable/rating_filled" />

</layer-list>

包含RatingBar的XML

<RatingBar
    android:id="@+id/rating_bar_friendly"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:numStars="5"
    android:stepSize="1.0"
    style="@style/CustomRatingBar" />

2 个答案:

答案 0 :(得分:0)

还有另一种方法可以解决这些问题。请将xhdpi images分开drawable folder。所以你不需要将图像分别放在xhdpi和mdpi中。所以你必须{{1}并将所有图像放在那里。

答案 1 :(得分:0)

你能解释一下你是怎么知道它是使用来自mdpi vs xhdpi的图像吗?

Android会根据设备的屏幕密度自动从正确的drawables文件夹中选择文件。

https://developer.android.com/training/multiscreen/screendensities.html

在我的脑海中,我可以看到使用mdpi的图像的唯一方法是,如果你没有相同的xhdpi文件可用。