目前,我只有一个带有几个按钮的相对布局,并设置了android:background="#FFFFFF"
我想创建一个背景图片来代替,但我不确定我应该创建什么尺寸的图像。
据我所知,对于菜单图标/启动器图标,我需要为ldpi,mdpi和hdpi创建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(虽然您的图片可能太复杂了)