0

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

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

样式.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" />
4

2 回答 2

0

你能解释一下你是如何知道它使用来自 mdpi 和 xhdpi 的图像的吗?

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

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

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

于 2014-04-03T02:13:32.913 回答
0

还有另一种方法可以解决这些问题。将您xhdpi images的图像单独放置。所以drawable folder您不需要将图像分别放在 xhdpi 和 mdpi 中。因此您必须create a common folder drawable in res将所有图像放在那里。

于 2014-04-02T06:29:28.750 回答