2014-03-28 78 views
1

在我的应用程序中,我想要一个背景是图像的屏幕。该图像将以可绘制的形式存储,并且我知道,为了支持不同的屏幕大小/密度,我需要在其他可绘制文件夹中存储相同图像的版本但大小不同。像素大小应为ldpi,mdpi,ldpi和xhdpi的图像大小?

,我发现这样的信息:

ldpi: Low-density screens; approximately 120dpi. 
mdpi: Medium-density (on traditional HVGA) screens; approximately 160dpi. 
hdpi: High-density screens; approximately 240dpi. 
xhdpi: Extra high-density screens; approximately 320dpi. Added in API Level 8 

我的问题虽然是我怎么知道我的形象应该是什么样的尺寸,以像素为每个相应的文件夹?此图像将成为背景的屏幕只能在肖像模式下查看,所以我想知道与肖像布局有关的尺寸。

+0

再也没有对ldpi资产的实际需求,但无论如何,用于扩展资产的比例如下 - ldpi:mdpi:hdpi:xhdpi:xxhdpi:xxxhdpi :: 3:4:6: 8:12:16 – Karakuri

+1

这已经在这里回答了:[http://stackoverflow.com/quest离子/ 12768128/Android的启动图标尺寸] [1] [1]:http://stackoverflow.com/questions/12768128/android-launcher-icon-size – Ankhwatcher

+0

以及比例因子是如下所示:ldpi,mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi => 0.75,1.0,1.5,2.0,3.0,4.0 –

回答

0

对不起,用户,我第一次没有看完你的整个问题。

如果您正在设置背景,您可以使用大图像和create a scaled bitmap from it

你会想要使用一种方法来测量屏幕大小,以确定你应该缩放你的位图。 例如:

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
metrics.heightPixels; 
metrics.widthPixels; 

然后缩放的位图:

Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.welcome_background); 
int nh = (int) (bm.getHeight() * (512.0/bm.getWidth())); 
Bitmap scaled = Bitmap.createScaledBitmap(bm, 512, nh, true); 
BitmapDrawable bitmapDrawable = new BitmapDrawable(getResources(), scaled); 
welcomeScreen.setBackgroundDrawable(bitmapDrawable); 

(该代码不能扩展以显示它只是扩展到512像素的宽度尺寸,但它应作为一个例子)

相关问题