先上图看实现效果:
首先在res/values/ 下建立一个attrs.xml , 在里面定义我们的属性,只定义三个,有间距、分值和是否可以编辑:
<!--StarLinearLayout-->
<declare-styleable name="star">
<attr name="margin" format="dimension|reference"/>
<attr name="isEdit" format="boolean"/>
<attr name="score" format="float"/>
</declare-styleable>
自定义一个View继承LinearLayout,在构造方法中获取我们自定义的属性:
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import java.util.ArrayList;
import java.util.List;
public class StarLinearLayout extends LinearLayout implements OnClickListener {
/**
* 星星之间的间距
*/
private int mMargin = 10;
/**
* 是否可点击
*/
private boolean isEdit;
/**
* 初始的值
*/
private float mScore = 0;
private List<ImageView> stars = new ArrayList<>();
public StarLinearLayout(Context context) {
this(context, null);
}
public StarLinearLayout(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public St

本文介绍如何在Android中实现一个商品评价星星评分控件,通过自定义View来达到所需效果。首先定义attrs.xml文件以设置间距、分值和可编辑性属性。接着在自定义的LinearLayout中获取这些属性,并动态添加星星图片。实现点击监听以设置和获取分数,最后展示在activity中的使用方法和XML布局示例。附带源码下载链接。
最低0.47元/天 解锁文章
4736

被折叠的 条评论
为什么被折叠?



