Android 使用ImageView的setImageLevel和level-list实现电影星级评价星级的显示

    为了ImageView设置很多不同图片以表示某种应用状态,如果每次都一一的通过ImageView设置图片的src来达到这一目的,实在是太过于繁琐,且维护和管理起来不便。因此,引入ImageView的setImageLevel和level-list实现这一目的。

电影有五个星级;

先写一个movie_info_score_level.xml

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

    <item
        android:drawable="@drawable/movie_info_score_zero"
        android:maxLevel="0"/>
    <item
        android:drawable="@drawable/movie_info_score_one"
        android:maxLevel="1"/>
    <item
        android:drawable="@drawable/movie_info_score_one"
        android:maxLevel="2"/>
    <item
        android:drawable="@drawable/movie_info_score_two"
        android:maxLevel="3"/>
    <item
        android:drawable="@drawable/movie_info_score_two"
        android:maxLevel="4"/>
    <item
        android:drawable="@drawable/movie_info_score_three"
        android:maxLevel="5"/>
    <item
        android:drawable="@drawable/movie_info_score_three"
        android:maxLevel="6"/>
    <item
        android:drawable="@drawable/movie_info_score_three"
        android:maxLevel="7"/>
    <item
        android:drawable="@drawable/movie_info_score_four"
        android:maxLevel="8"/>
    <item
        android:drawable="@drawable/movie_info_score_four"
        android:maxLevel="9"/>
    <item
        android:drawable="@drawable/movie_info_score_five"
        android:maxLevel="10"/>

</level-list>

布局文件

<ImageView
        android:id="@+id/movie_score_view"
        style="@style/MovieInfoScoreViewStyle"
        android:contentDescription="@string/app_name" />

style

<style name="MovieInfoScoreViewStyle">
        <item name="android:layout_width">138dip</item>
        <item name="android:layout_height">20dip</item>
        <item name="android:layout_marginStart">450dip</item>
        <item name="android:layout_marginTop">115dip</item>
        <item name="android:scaleType">fitXY</item>
        <item name="android:src">@drawable/movie_info_score_level</item>
        <item name="android:background">@null</item>
    </style>

代码中设置

movieScoreView = (ImageView) findViewById(R.id.movie_score_view);
movieScoreView.setImageLevel(8); //设置int显示对应的星级

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值