【发布时间】:2018-07-04 18:13:36
【问题描述】:
我正在使用支持库 22.1.1。我的目标是为自定义 RatingBar 着色以避免在我的 APK 中包含多个图像。
着色在 API 22 上正确应用,但在 API 19 上不正确。我希望它在 API >= 16 上工作。请注意,我只尝试对“进度”进行着色,而不是对完整条进行着色。
这是 RatingBar 样式:
<style name="customRatingBar" parent="Widget.AppCompat.RatingBar">
<item name="android:progressDrawable">@drawable/custom_ratingbar</item>
<item name="android:minHeight">24dp</item>
<item name="android:maxHeight">24dp</item>
<item name="android:progressTint">@color/md_red_700</item>
<item name="android:secondaryProgressTint">@color/md_red_700</item>
</style>
还有custom_ratingbar.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/ic_heart_outline_grey600_24dp" />
<item android:id="@android:id/progress"
android:drawable="@drawable/ic_heart_grey600_24dp" />
</layer-list>
它在我的布局中以这种方式应用,它在一个扩展 android.support.v4.Fragment 本身的片段中,在一个扩展 android.support.v7.app.AppCompatActivity 的活动中:
<RatingBar
android:layout_width="wrap_content"
android:layout_height="22dp"
android:id="@+id/checkin_rating"
style="@style/customRatingBar"
android:isIndicator="true"
android:numStars="5"
android:stepSize="1"
android:layout_marginBottom="8dp"/>
我收到来自 lint 工具的警告,说 API android:progressTint。有什么方法可以在不使用多个可绘制对象的情况下实现这一点?
【问题讨论】:
标签: android android-support-library android-drawable