我正在做一个2d渲染类(渲染像素的int数组),我想在屏幕上显示这些像素。我尝试使用ImageView,但它没有工作;在android上有像canvas这样的方法吗?或者如何创建一直更新的图像? (我已经实现了runnable类)
这就是我所做的:
@Override
public void run()
{
Imageview exampleImage = (ImageView) findViewById(R.id.exampleId);
// This is a simple method to do the int array image;
int[] img = new int[100]
for(int i = 0; i < 100; i++){
img[i] = i*100;
}
Bitmap bitmap = Bitmap.createBitmap(10, 10, Bitmap.Config.ARGB_8888);
bitmap.setPixels(img, 0, 10, 0, 0, 100, 100);
exampleImage.setImageBitmap(bitmap);
}
嗯,它在屏幕上没有显示任何内容
答案 0 :(得分:1)
是的,您应该创建一个自定义View
并在Canvas
上绘制,这将填充下面的Bitmap
。
覆盖View#onDraw(Canvas)并使用Canvas#drawPoints(float[], Paint)方法绘制像素。然后,您可以使用View#postInvalidateDelayed(long)或其中一些兄弟方法强制View
重绘自己,直到动画完成。
您可以在this API指南中找到有关Canvas和Drawables的更多信息。