java - 如何将参数自定义 View 传递给 Activity 类

标签 java android ondraw

我有一个自定义 View 类,它是 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(?)

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

中实例化 DrawView

最佳答案

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

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

更多info .并且您可以在任何时候想要刷新 View 时使用 invalidate 。

关于java - 如何将参数自定义 View 传递给 Activity 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29725928/

相关文章:

java - 为什么在 Android 中会出现 Unparseable date 错误?

java - 防止一个操作被不同的服务器多次调用

java - 在java中的instanceOf检查中添加额外的检查

android - 将协调器布局与 recyclerview 结合使用时滚动出现卡顿现象

Android自定义 View 位图内存泄漏

java - 编程练习: Java Logger (log4j)

java - 如何在 Android Studio 中启用 httpclient?

java - Oracle MAF : Is it do anything that IOS xcode and android eclipse does

android - 自定义 View Canvas onDraw() 不绘制任何东西

Android - 在动态插入的自定义 View 中未调用 onDraw