首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显式调用onDraw()

显式调用onDraw()
EN

Stack Overflow用户
提问于 2013-10-21 06:47:12
回答 1查看 4.6K关注 0票数 2

在这种情况下,我想在画布上画一些值。这些值来自另一个活动。

代码语言:javascript
复制
 Canvas myCanvas;

public void findSubUnit(String name) {
    unitName = name;
    for (Entry<String, ArrayList<String>> values : subUnits.entrySet()) {

        key = values.getKey();
        if (unitName.equalsIgnoreCase(key)) {
            Log.i("prj,match unit=", key);

            v = values.getValue();
            myCanvas = new Canvas();
            onDraw(myCanvas);

        }
    }

这是我的onDraw方法。

代码语言:javascript
复制
  void onDraw(Canvas canvas, ArrayList<String> units) {
        Paint paint = new Paint();
        paint.setColor(Color.RED);
        canvas.drawText("hello", 100, 130, paint);
    }

它什么也没有显示,甚至没有一个错误。如何显式地将arraylist发送到onDraw

EN

回答 1

Stack Overflow用户

发布于 2019-06-11 05:41:39

您需要创建自定义视图并覆盖所有3个承包商,将ArrayList单元放入自定义类中,为ArrayList编写setter getter,然后调用

requestLayout();

论自定义视图

无效()只会导致视图被重绘:http://developer.android.com/reference/android/view/View.html#invalidate()

requestLayout()要求视图通过一个新的度量/布局传递(然后重画):http://developer.android.com/reference/android/view/View.html#requestLayout()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19487854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档