我对Android上的PixelFormat感到困惑.
我的设备是摩托罗拉Defy.
我有两个问题:
getWindowManager().getDefaultDisplay().getPixelFormat()返回4代表RGB_565.据我所知,我的设备有16M颜色,这意味着每个像素3个(或4个alpha通道)字节:Run Code Online (Sandbox Code Playgroud)2^(8*3) = 2^24 = 16M
但RGB_565格式每像素有2个字节(16位),代表65K颜色:
Run Code Online (Sandbox Code Playgroud)2^(8*2) = 2^16 = 65K
那么,为什么getPixelFormat()不返回每像素3(或4个像RGBA)字节的格式?它是否显示驱动程序问题?我可以设置PixelFormat为RGBA_8888(或模拟)吗?
getPixelFormat()返回5.但是这个价值没有记载.它代表什么?实际上,在这种情况下效果与常数相同4.但是从这次讨论中我发现5代表RGBA_8888(但没有证据证明该陈述).那么如何才能找出设备屏幕的真实格式?另外我在Android 2.2上发现了一个中文设备,也有PixelFormat 5个,但真正的格式是4(就像我的摩托罗拉).我搜索了这些问题但没有发现任何问题.我发现唯一的东西是nexus 7也有5种格式.
更新:
我找到了方法,getWindow().setFormat()但它实际上并没有改变主像素格式.