一、自定义组件
鸿蒙自定义view的实现方式是继承Component、实现DrawTask接口。然后在构造函数里面调用addDrawTask(this)。代码如下:
public class View extends Component implements Component.DrawTask {
protected Context mContext;
/**
* This view is visible.
* Use with {@link #setVisibility} and <a href="#attr_android:visibility">{@code
* android:visibility}.
*/
public static final int VISIBLE = Component.VISIBLE;
/**
* This view is invisible, but it still takes up space for layout purposes.
* Use with {@link #setVisibility} and <a href="#attr_android:visibility">{@code
* android:visibility}.
*/
public static final int INVISIBLE = Component.INVISIBLE;
/**
* This view is invisible, and it doesn't take any space for layout
* purposes. Use with {@link #setVisibility} and <a href="#attr_android:visibility">{@code
* android:visibility}.
*/
public static final int GONE = Component.HIDE;
public View(Context context) {
super(context);
initContext(context);
}
public View(Context context, AttrSet attrSet) {
super(context, attrSet);
initContext(context);
}
public View(Context context, AttrSet attrSet, String styleName) {
super(context, attrSet, styleName);
initContext(context);
}
public View(Context context, AttrSet attrSet, int resId) {
super(context, attrSet, resId);
initContext(context);
}
private void initContext(Context context){
mContext = context;
init();
}
protected void init(){
addDrawTask(this::onDraw);
}
pro