我正在尝试理解如何在Android上动态生成2D图形。我在网上找不到任何人做这个的例子。
我的示例随机绘制1000条随机颜色的线条。我想看到所有的线条被绘制,但是在setContentView()调用之前我看不到任何东西(此时所有的线条已经被绘制)。
我尝试了许多排列组合,包括将setContentView()移到draw()调用之前,并在for循环中添加ourView.invalidate(),但在每种情况下屏幕都保持白色,直到所有线条都被绘制。
如果有人能指出一个这样工作的例子,我会很高兴去研究它并自己添加正确的答案。
我的示例随机绘制1000条随机颜色的线条。我想看到所有的线条被绘制,但是在setContentView()调用之前我看不到任何东西(此时所有的线条已经被绘制)。
我尝试了许多排列组合,包括将setContentView()移到draw()调用之前,并在for循环中添加ourView.invalidate(),但在每种情况下屏幕都保持白色,直到所有线条都被绘制。
如果有人能指出一个这样工作的例子,我会很高兴去研究它并自己添加正确的答案。
package com.example.graphicsdemo;
+imports
public class MainActivity extends Activity {
ImageView ourView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
draw();
setContentView(ourView);
}
public void draw() {
Bitmap blankBitmap = Bitmap.createBitmap(600,600,Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(blankBitmap);
ourView = new ImageView(this);
ourView.setImageBitmap(blankBitmap);
Paint paint = new Paint();
Random random = new Random();
for(int i = 0 ; i < 1000 ; i++) {
paint.setColor(Color.argb(255, random.nextInt(255), random.nextInt(255), random.nextInt(255)));
canvas.drawLine(random.nextInt(600), random.nextInt(600), random.nextInt(600), random.nextInt(600), paint);
}
}
}