我正在使用带有自定义星形图像的自定义评级栏,但它正在从错误的目录中提取图像。我有三星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" />
答案 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文件可用。