我在github上看到一个比较炫酷的仪表盘型进度条,然后就下下来玩,可是我遇到一个问题,
看如下代码:
public class DashedCircularProgress extends RelativeLayout {
private ExternalCirclePainter externalCirclePainter;//外部圆
private InternalCirclePainter internalCirclePainter;//内部圆
private ProgressPainter progressPainter;
private IconPainter iconPainter;//圆圈上面有图片
private Bitmap image;
// Interpolator 被用来修饰动画效果,定义动画的变化率,可以使存在的动画效果accelerated(加速),
// decelerated(减速),repeated(重复),bounced(弹跳)等。
private Interpolator interpolator = new AccelerateDecelerateInterpolator();
private int externalColor = Color.WHITE;
private int internalBaseColor = Color.YELLOW;
private int progressColor = Color.WHITE;
private float min = 0;
private float last = min;
private float max = 100;
private ValueAnimator valueAnimator;
private OnValueChangeListener valueChangeListener;
private float value ;
private int duration = 1000;
private int padingTop = 22;
private int heightNormalittation = 10;
private int progressStrokeWidth = 48;
public DashedCircularProgress(Context context, AttributeSet attrs) {
super(context, attrs);
init(context, attrs);
}
public DashedCircularProgress(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context, attrs);
}
/**中间还有些代码,就省略没有贴上来*/
public void setValue(float value) {
this.value = value;
if (value <= max || value >= min) {
animateValue();
}
}
}
我现在想在我的活动中调用这个类中的setValue()方法,可是这个构造方法里面有个
AttributeSet attrs,于是我就不懂这个到底该怎么传入这个参数,这个参数应该设置一些
什么东西,各位前辈指点一下吧,感谢!!!
一般控件是在xml中使用的!而在xml中使用这个控件它调用的是
public DashedCircularProgress(Context context, AttributeSet attrs) {
super(context, attrs);
init(context, attrs);
}
这个只有两个参数的构造函数。AttributeSet是这个控件的一些属性设置的值(一般用于自定义控件属性所用)。
所以你只要在xml中使用这个控件就好了。无需担心它传递的是什么,如果你想了解,可以找找自定义view的相关blog。
而你说的要调用setValue()方法,则只要在activity中获取这个DashedCircularProgress,通过他调用setValue()即可!