如何将参数自定义视图传递给 activity class
How to pass the parameters custom view to activity class
我有一个自定义视图 class,它是 DrawView
它扩展视图并具有 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
class。我该怎么做? DrawView dv= new DrawView(?)
顺便说一句,我会在 MainActivity
中调用 invalidate()
。我会调用 dv.invalidate()
这就是为什么我需要在我的`MainActivity
中实例化 DrawView
是的,你可以。你可以在 main activity create attributesset 中实例化你的视图,如果你需要它传递给视图构造函数并完成。
XmlPullParser parser = resources.getXml(myResouce);
AttributeSet attributes = Xml.asAttributeSet(parser);
更多info。并且您可以在任何时候想刷新视图时使用 invalidate 。
我有一个自定义视图 class,它是 DrawView
它扩展视图并具有 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
class。我该怎么做? DrawView dv= new DrawView(?)
顺便说一句,我会在 MainActivity
中调用 invalidate()
。我会调用 dv.invalidate()
这就是为什么我需要在我的`MainActivity
DrawView
是的,你可以。你可以在 main activity create attributesset 中实例化你的视图,如果你需要它传递给视图构造函数并完成。
XmlPullParser parser = resources.getXml(myResouce);
AttributeSet attributes = Xml.asAttributeSet(parser);
更多info。并且您可以在任何时候想刷新视图时使用 invalidate 。