我只是想在Android中绘制/绘制到Canvas.但是,当我使用十六进制值或使用setARGB方法设置颜色时,它不起作用.但是当我使用Color.x(例如,Color.GREEN)时,它可以工作.这是代码:
Bitmap image = Bitmap.createBitmap(bitmapWidth, bitmapHeight, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(image);
Paint paintBackground = new Paint();
int green = Color.argb(0, 0, 255, 0); // 65280 (Won't work)
green = 0x0000ff00; // 65280 (Won't work)
paintBackground.setARGB(0, 0, 255, 0);
green = paintBackground.getColor(); // 65280 (Won't work)
green = Color.GREEN; // -16711936 (Works!)
paintBackground.setColor(green);
green = paintBackground.getColor(); // -16711936
paintBackground.setStyle(Paint.Style.FILL);
canvas.drawRect(0, 0, bitmapWidth, bitmapHeight, paintBackground);
Run Code Online (Sandbox Code Playgroud)
所以基本上Color.GREEN返回-16711936 - 这就行了.但是,十六进制值是65280 - 这不起作用.也就是说,它不会绘制绿色矩形.
我需要使用十六进制值,因为我需要将颜色设置为0x00ffff00此处,然后再设置为不同的十六进制值.
Android Color(Paint中的setColor)是否需要负整数?
问题是0x0000ff00不是绿色,而是完全透明的绿色.完全不透明的绿色将0xff00ff00是,因为你已经注意到了,-16711936.同样,在使用时,setARGB您需要指定255alpha以使颜色完全不透明.
| 归档时间: |
|
| 查看次数: |
5151 次 |
| 最近记录: |