我对android开发非常陌生,一直试图绘制由多个不同颜色的小矩形组成的正方形......本质上就像一个Mosaic。使用循环绘制多个形状 - Android Canvas
现在基本上我正在从一个文件中读取值,该文件将颜色分配给较小的Rects。我正在使用一对嵌套for循环来逐行绘制小Rects。然而,当程序结束时,只有一个小的Rect绘制,这是最后一个绘制的,它的颜色对应于从文件中读取的第一个值。
下面是我的一些代码,向你展示我的意思:
public SnapshotDraw(Context context) {
super(context);
for(int a = 0; a < 63; a++){
for(int b = 0; b < 63; b++){
fileName = PREFIX + "2" + EXTENSION;
try {
bf = new BufferedReader(new FileReader(fileName));
tokens = new StringTokenizer(bf.readLine(), " \n");
weight = Byte.parseByte(tokens.nextToken());
x_scalar = b*MAG;
y_scalar = a*MAG;
mDrawable = new ShapeDrawable(new RectShape());
mDrawable.getPaint().setColor(colour.getColour(weight));
mDrawable.setBounds((X_OFFSET + x_scalar), (Y_OFFSET + y_scalar), ((MAG + X_OFFSET) + x_scalar), ((MAG + Y_OFFSET) + y_scalar));
} catch (FileNotFoundException ex) {
Logger.getLogger(NetworkUtilities.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(NetworkUtilities.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
protected void onDraw(Canvas canvas) {
mDrawable.draw(canvas);
}
这除了是延伸查看,被称为一个活动的onCreate()
方法中的一类。
我会很感激任何指导,并提前致谢!
干杯。
好吧,所以我把令牌线放在外部for循环中,它返回一个正方形的最终位置,正确的颜色对应的是在数据文件中的位置......所以一个问题下来,一个仍然要去!为什么这段代码只打印出1个Rect(最后一个Rect)而不是全部? – travega 2010-08-07 15:20:00