1、最体力的办法就是,UI给出星星图片,布局中五个ImageView,根据接口返回几个,给几个imageview附上星星
2、ratingbar,需要布局中style设置成
style="?android:attr/ratingBarStyleSmall" 为小星星
drawable中添加layerlist
<?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/xfb_star"></item> <item android:id="@android:id/secondaryProgress" android:drawable="@drawable/xfb_star"></item>--> <item android:id="@android:id/progress" android:drawable="@drawable/xfb_star"></item> </layer-list>
style中
<style name="xfb_shop_ratingbar" parent="Base.Widget.AppCompat.RatingBar"> <item name="progressDrawable"> @drawable/xfb_shop_layerlist </item> <item name="android:maxHeight">32dp</item> <item name="android:maxWidth">32dp</item> </style>
然后布局中引用自定义的style
3、第三种办法就是用textview,
public static String haha(int fs){ return "★★★★★☆☆☆☆☆".substring(5-fs,10-fs); }用SpannableString打造绚丽多彩的文本显示效果
http://www.jianshu.com/p/84067ad289d2
tv_star=(TextView)findViewById(R.id.tv_star); // tv_star.setText(haha(0)); SpannableString spannableString = new SpannableString("在文本中添加表情(表情)"); Drawable drawable = getResources().getDrawable(R.drawable.xfb_star); drawable.setBounds(0, 0, 42, 42); ImageSpan imageSpan = new ImageSpan(drawable); spannableString.setSpan(imageSpan, 6, 8, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); tv_star.setText(spannableString); } public static String haha(int fs){ return "★★★★★".substring(fs,5); }