如何将参数自定义视图传递给活动类

时间:2015-04-19 04:50:45

标签: java android ondraw

我有一个自定义视图类DrawView,它扩展了View并具有onDraw:

public class DrawView extends View {

    Paint paint;
    public ArrayList<Line> lines;

    public DrawView(Context context) {
        super(context);
        init();
    }

    public DrawView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();

    }

    public DrawView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

    private void init() {
        paint = new Paint();
        paint.setColor(Color.YELLOW);
        paint.setStrokeWidth(10);
    }

    @Override
    public void onDraw(Canvas canvas) {
        for(Line line : lines){
            canvas.drawLine(line.x_start, line.y_start, line.x_stop, line.y_stop, paint);
        }
    }

}

我想将DrawView实例化到扩展Activity的MainActivity类。我该怎么办? DrawView dv= new DrawView(?)

顺便说一句,我会在invalidate()中致电MainActivity。我将调用dv.invalidate()这就是为什么我需要在我的`MainActivity

中实例化DrawView

1 个答案:

答案 0 :(得分:1)

是的,你可以。您可以在主活动创建属性集中实例化您的视图,如果需要,可以将其传递给视图构造函数并完成。

XmlPullParser parser = resources.getXml(myResouce);
 AttributeSet attributes = Xml.asAttributeSet(parser);

了解更多info。并且只要您想刷新视图,就可以使用invalidate。

相关问题