android背景是否有推荐的像素大小?

时间:2011-04-15 22:53:30

标签: android android-2.1-eclair

目前,我只有一个带有几个按钮的相对布局,并设置了android:background="#FFFFFF"

我想创建一个背景图片来代替,但我不确定我应该创建什么尺寸的图像。

据我所知,对于菜单图标/启动器图标,我需要为ldpi,mdpi和hdpi创建3组。

但是,对于背景,这些像素大小应该是什么?

我将创建类似于以下内容的背景:

enter image description here

3 个答案:

答案 0 :(得分:2)

不仅要考虑不同的屏幕密度,还要考虑不同的屏幕尺寸。为每个配置设置背景图像是不切实际的。相反,无论屏幕尺寸或分辨率如何,我都建议使用java代码拍摄图像并将其缩放到屏幕尺寸。

在这个例子中,我从一个游戏中拉出来,我有一个位图bg,屏幕分辨率保存到maxwidth和maxheight。我将位图与背景进行比较,然后设置一些比例值。 oldx / oldy确定自上次检查后屏幕分辨率是否已更改。我创建一个矩阵并调整位图大小,将其保存到bgresized,然后设置我的oldx / oldy,这样我的下一个更新就可以在需要时重新调整。然后,我画出新的背景

这段代码我使用了一个画布,你可以在你的视图的onDraw(Canvas画布)方法中使用它,或者你不喜欢画布,你可以改变它在onCreate和方向改变中使用它,或类似的东西

checkbackgroundsize();
bgwidth = bg.getWidth();
    bgheight = bg.getHeight();
    scalex = (float)maxwidth / (float)bgwidth;
    scaley = (float)maxheight / (float)bgheight;
    if ((oldx != scalex) || (oldy != scaley)){//if the screen changed sizes
        Matrix matrix = new Matrix();
        matrix.postScale(scalex, scaley);
        bgresized = Bitmap.createBitmap(bg, 0, 0, bgwidth, bgheight, matrix, true);
        oldx = scalex;
        oldy = scaley;
    }

    canvas.drawBitmap(bgresized, 0, 0, null);//draw resized background

答案 1 :(得分:1)

您应该阅读有关Android开发人员指南的最佳做法的Supporting Multiple Screens

答案 2 :(得分:0)

我还建议您查看Android的9 patch drawables(虽然您的图片可能太复杂了)