Blackberry [CodeNameone] - 在屏幕上绘图

时间:2013-12-15 19:00:08

标签: java blackberry lwuit codenameone

我是codenameone的初学者。我分配了任务,在屏幕上绘制任何[不是矩形或任何形状]。任何意味着它可能是任何有手指的东西。就像android有gesturelayout,你可以在表面上绘制任何东西。

我见过一些论坛说我应该派生容器并覆盖paint方法。那从未让我做任何事情。即使是教程指南也只是经历了一些步骤。我不会提供一些工作示例或任何可以找到合适材料的链接。

1 个答案:

答案 0 :(得分:1)

您是否阅读了开发人员指南:http://www.codenameone.com/developer-guide.html

JavaDocs:https://codenameone.googlecode.com/svn/trunk/CodenameOne/javadoc/index.html

你应该派生组件并覆盖绘画,注意这段代码非常糟糕,因为它不会消除重复或做任何聪明的事情:

class Draw extends Component {
    private ArrayList<Point> points = new ArrayList<Point>();

    public Draw() {
       setFocusable(true);
    }

    public void pointerPressed(int x, int y) {
        points.add(new Point(x, y, 0xff0000));
    }

    public void pointerDragged(int x, int y) {
        points.add(new Point(x, y, 0xff0000));
    }

    public void pointerReleased(int x, int y) {
        points.add(new Point(x, y, 0xff0000));
    }

    public void paint(Graphics g) {
       Point lastPoint = null;
       for(Point p : points) {
           if(lastPoint != null) {
               g.setColor(p.color);
               g.drawLine(lastPoint.x, lastPoint.y, p.x, p.y);
           }
           lastPoint = p;
       }
    }
}

class Point {
    int x;
    int y;
    int color;

    public Point(int x, int y, int color) {
       this.x = x; this.y = y; this.color = color;
    }
}