Android 如何根据设备类型缩放壁纸图像
我正在开发一个应用程序,在这个应用程序中,设备的壁纸图像应该以固定的间隔进行更改。我把这些图像保存在可绘制的文件夹中。我正在使用墙纸管理器将这些图像设置为墙纸 为了确保该应用程序在各种设备上运行良好,我在res目录中的各种文件夹(如drawable small、drawable xlarge文件夹)中保存了不同大小图像的多个副本。但是,这些并不能在每台设备上正确缩放 我的问题是如何确保墙纸图像能够很好地安装在每台设备上。我必须以编程的方式来做吗?任何示例代码都会有巨大的帮助。谢谢 这是我使用的代码Android 如何根据设备类型缩放壁纸图像,android,wallpaper,Android,Wallpaper,我正在开发一个应用程序,在这个应用程序中,设备的壁纸图像应该以固定的间隔进行更改。我把这些图像保存在可绘制的文件夹中。我正在使用墙纸管理器将这些图像设置为墙纸 为了确保该应用程序在各种设备上运行良好,我在res目录中的各种文件夹(如drawable small、drawable xlarge文件夹)中保存了不同大小图像的多个副本。但是,这些并不能在每台设备上正确缩放 我的问题是如何确保墙纸图像能够很好地安装在每台设备上。我必须以编程的方式来做吗?任何示例代码都会有巨大的帮助。谢谢 这是我使用的代
Drawable drawable;
WallpaperManager wpm;
@Override
public void onCreate() {
super.onCreate();
wpm=WallpaperManager.getInstance(WallAlarm.this);
drawable = getResources().getDrawable(R.drawable.two);
}
Bitmap wallpaper=((BitmapDrawable)drawable).getBitmap();
ImageView iv=new ImageView(this);
iv.setImageDrawable(drawable);
iv.setScaleType(ScaleType.FIT_XY);
try {
wpm.setBitmap(wallpaper);
} catch (IOException e) {
e.printStackTrace();
}
}
}
你可以用
Display display = Activity.getWindowManager().GetDefaultDisplay();
display.getHeight();
display.getWidth();
根据屏幕比例选择图像
或者使用尝试使用类似的方法,并根据显示缩放/裁剪图像:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
metrics.heightPixels;
metrics.widthPixels;
或使用或:
谢谢。我正在尝试使用display.getHeight。但不知何故,这些图像在较小的设备上不断被裁剪。此外,我不知道如何通过可绘制图像文件使用墙纸图像的scaleType选项。请帮助。您的壁纸图像是ImageView吗?所以你可以这样做:iv.setImageBitmapbitmap;或iv.setImageDrawable iv.setScaleTypeScaleType.FIT_CENTER;再次感谢。我尝试在代码中使用imageview。但我仍然不确定如何将imageview与我的壁纸相关联。我已经编辑了我的原始问题并输入了一些代码。如果可能的话,请检查一下并帮助我。对不起,我对Android有点陌生,所以我有点困惑。
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;