你可以这样做:
protected void onCreate(Bundle savedInstanceState)
{
setContentView(R.layout.high_scores);
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inPreferredConfig = Config.RGB_565;
BitmapDrawable highScoresBg = BitmapFactory.decodeResource(getResources(), R.drawable.achievements, opts);
findViewById(R.id.high_scores_root).setBackgroundDrawable(highScoresBg);
使用 ARGB_8888 时,图像的像素将存储在 2 个字节上,而不是 4 个。节省了 50% 的内存,但质量当然会降低。
本文告诉我们,在 Android < 2.3上,图像默认为 RGB_565。但是,如果图像具有 alpha 通道(例如 PNG),它将以 ARGB_8888 加载。在 Android >= 2.3 上,默认情况下所有图像都以 ARGB_8888 加载。