如何在int [] format
中显示图像,例如:
int[] UM = {1,1,0,0,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1};
这是我的代码:
public class MainActivity extends Activity {
private ImageView imageTeste;
private Bitmap bitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int[] UM = {1,1,0,0,1,1,0,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1};
bitmap = Bitmap.createBitmap(UM, 5, 9, Bitmap.Config.RGB_565);
imageTeste = (ImageView) findViewById(R.id.imageId);
imageTeste.setImageBitmap(bitmap);
}
}
但它不会显示任何内容,只有将Bitmap.Config.ARGB_8888参数更改为RGB_565,但这样做时,白色像素(1)变为黑色。即使将值(1)转换为255也不起作用,它们将显示为蓝色。
有谁知道如何解决这个问题?
答案 0 :(得分:0)
您使用的方法是:Bitmap createBitmap (int[] colors, int width, int height, Bitmap.Config config)
。请查看此方法here的文档。您提供方法的int[]
必须是Color ints数组。这些不是常规整数,对这些值使用0或1是使图像显示为空的原因。
查看关于Color here的Android文档。
例如,不透明蓝色为0xff0000ff
。颜色整数有4个组件打包在一个32位整数值。 4个组件分别代表Alpha,Red,Green和Blue。在示例中,A组件是FF
,意味着颜色是完全不透明的。 R组件00
,没有红色。 G分量为00
,没有绿色。 B组件为FF
,全为蓝色。
您只需要为createBitmap()
方法提供有效的int[]
即可解决问题。