在我的应用程序中,我希望有一个屏幕,其中背景是图像。该图像将存储在drawable中,我知道我需要在其他可绘制文件夹中存储相同图像但不同大小的版本,以支持不同的屏幕尺寸/密度。
我找到了这个信息:
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 :(得分: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像素的宽度,但它应作为示例)