我是codenameone的初学者。我分配了任务,在屏幕上绘制任何[不是矩形或任何形状]。任何意味着它可能是任何有手指的东西。就像android有gesturelayout,你可以在表面上绘制任何东西。
我见过一些论坛说我应该派生容器并覆盖paint方法。那从未让我做任何事情。即使是教程指南也只是经历了一些步骤。我不会提供一些工作示例或任何可以找到合适材料的链接。
答案 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;
}
}