背景图片大小支持所有中大型安卓屏幕

发布于 2024-09-06 17:15:16 字数 211 浏览 6 评论 0原文

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

我已经阅读了有关支持多种分辨率等的android文档, 但我的设计师问我壁纸应该是什么尺寸,我不想要所有屏幕尺寸的低、正常、高 dpi 的大量图像。

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

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

I'm writing an app and I want one of my activities to have a background,

I've read the android docs about supporting multiple resolutions etc,
but my designer is asking me what size the wallpapers should be and I do not want a lot of images for low,normal,high dpi in all the screen sizes.

What would be the most space efficient way to get a nice screen filling graphic background on all those screens?

Android is great and all, but I do not want to end up with a huge app since I need all sizes of images for everything.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

风为裳 2024-09-13 17:15:16

一种方法是针对密度进行设计并使用图标设计指南对于图标,以及“屏幕范围”中指定的尺寸支持多屏幕指南中的背景图像区域。

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

您可以将资源放入适当的drawable-mdpi、drawable-hdpi、drawable-ldpi 文件夹中,它们将得到适当的使用。

One approach is to design for the densities and use the Icon Design guidelines for icons, and the dimensions specified in the "Range of Screens" area in the Supporting Multiple Screens guide for your background images.

For the background images be sure to take the status bar dimensions into consideration.

You can put your resources in the appropriate drawable-mdpi, drawable-hdpi, drawable-ldpi folders and they will be used appropriately.

满身野味 2024-09-13 17:15:16

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

    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);
}

What about having only one high resolution landscape background and using a "stretch" strategy for display?

    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);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文