背景图像的大小,以支持所有中型和大型Android屏幕

时间:2010-06-25 16:31:39

标签: android background dpi resolutions

我正在编写一个应用程序,我希望我的一个活动有一个背景,

我已经阅读了有关支持多种分辨率等的Android文档, 但是我的设计师问我壁纸的大小应该是多少,我不希望在所有屏幕尺寸中都有很多低,普通,高dpi的图像。

在所有这些屏幕上获得漂亮的屏幕填充图形背景的最节省空间的方法是什么?

Android非常好,但我不想最终得到一个巨大的应用程序,因为我需要所有尺寸的图像。

2 个答案:

答案 0 :(得分:1)

一种方法是设计密度并使用Icon Design guidelines图标,以及Range of Screens指南中“Supporting Multiple Screens”区域中指定的尺寸作为背景图像。

对于背景图像,请务必考虑状态栏尺寸。

您可以将资源放在相应的drawable-mdpi,drawable-hdpi,drawable-ldpi文件夹中,它们将被正确使用。

答案 1 :(得分:0)

如果只有一个高分辨率风景背景并使用“拉伸”策略进行显示呢?

    mBackgroundGraphic = BitmapFactory.decodeResource(getResources(), R.drawable.background);
    mBackgroundGraphic = getResizedBitmap(mBackgroundGraphic);

public Bitmap getResizedBitmap(Bitmap bm) {
    int width = bm.getWidth();
    int height = bm.getHeight();
    int displayWidth = mDisplay.getWidth();
    int displayHeight = mDisplay.getHeight();
    float scaleWidth = ((float) displayWidth) / width;
    float scaleHeight = ((float) displayHeight) / height;

    // Create a matrix for the manipulation
    Matrix matrix = new Matrix();

    // Resize the bit map
    matrix.postScale(scaleWidth, scaleHeight);

    // Return the new stretched Bitmap
    return Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false);
}