Skip to content

Nexus One display: 16 or 24 bits per pixel?

There has been some discussion recently about whether the Nexus One display panel hardware has 24 bits per pixel or 16 bits per pixel. 24bpp means 8 bits per color RGB888 and allows a total of about 16 million different colors. 16bpp is RGB565 (Red and Blue have 5 bits and Green has 6 bits), and allows a total of 64 thousand different colors.

I’m happy to bring the good new and to clear this question once for all:

Yes, the Nexus One display is 24 bits per pixel!

Now, in software things look a bit different. In Eclair by default a new window is created with a PixelFormat of RGB565 (16bpp), and thus a naive application will get the surprising result of displaying in 16bits even if drawing for example an RGBA_8888 Bitmap in full color.

Happily this is easy to fix by requesting a different “pixel format” when the window is initialized in the Activity.onCreate():

public void onCreate(Bundle b) {
    getWindow().setFormat(PixelFormat.RGBA_8888);
}

After this simple operation the drawing will happen in full-splendor 24bpp. Of course, take care not to use some intermediary RGB_565 bitmaps, or some 565 config in opengles.

And by the way, the Droid panel is 24 bits per pixel as well.

Post a Comment

Your email is never published nor shared. Required fields are marked *