Android 壁纸图像未在所有设备上以正确的大小显示
我做了一个应用程序,在定时间隔内使用几个png图像设置壁纸。屏幕上显示的壁纸尺寸并非所有设备都正确。在9.7的平板电脑上,尺寸完美,有足够的空间左右滚动。然而,在手机上,只能看到每个图像的一小部分。看起来像是放大了 我需要什么编码来告诉Android在所有设备上以正确的大小显示图像 我以为是墙纸管理员做的,但似乎我还不知道如何使用它 下面是我如何更改墙纸的:Android 壁纸图像未在所有设备上以正确的大小显示,android,image,scale,android-wallpaper,Android,Image,Scale,Android Wallpaper,我做了一个应用程序,在定时间隔内使用几个png图像设置壁纸。屏幕上显示的壁纸尺寸并非所有设备都正确。在9.7的平板电脑上,尺寸完美,有足够的空间左右滚动。然而,在手机上,只能看到每个图像的一小部分。看起来像是放大了 我需要什么编码来告诉Android在所有设备上以正确的大小显示图像 我以为是墙纸管理员做的,但似乎我还不知道如何使用它 下面是我如何更改墙纸的: myWallpaperManager.setResource(R.drawable.muzdalifah); 编辑显示用于更改墙纸的所有
myWallpaperManager.setResource(R.drawable.muzdalifah);
编辑显示用于更改墙纸的所有代码:
public class AlarmReceiverChangeImage extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
/*
* Make the settings available from the settings xml file.
*/
SharedPreferences mySettings = PreferenceManager
.getDefaultSharedPreferences(context);
/*
* Allow editing.
*/
SharedPreferences.Editor editor = mySettings.edit();
/*
* Get the settings into variables.
*/
boolean bln_checkbox_changing_is_activated = mySettings.getBoolean(
"checkbox_changing_is_activated", false);
String myCurrentImageName = mySettings.getString("current_image",
"kabanight1");
WallpaperManager myWallpaperManager = WallpaperManager
.getInstance(context.getApplicationContext());
if (bln_checkbox_changing_is_activated == true) {
if (myCurrentImageName.equals("tentcity")) {
try {
myWallpaperManager.setResource(R.drawable.kabacloseup);
myCurrentImageName = "kabacloseup";
} catch (IOException e) {
e.printStackTrace();
}
} else if (myCurrentImageName.equals("kabacloseup")) {
try {
myWallpaperManager.setResource(R.drawable.kabanight1);
myCurrentImageName = "kabanight1";
} catch (IOException e) {
e.printStackTrace();
}
} else if (myCurrentImageName.equals("kabanight1")) {
try {
myWallpaperManager.setResource(R.drawable.madina1);
myCurrentImageName = "madina1";
} catch (IOException e) {
e.printStackTrace();
}
} else if (myCurrentImageName.equals("madina1")) {
try {
myWallpaperManager.setResource(R.drawable.madina2);
myCurrentImageName = "madina2";
} catch (IOException e) {
e.printStackTrace();
}
} else if (myCurrentImageName.equals("madina2")) {
try {
myWallpaperManager.setResource(R.drawable.kabaday1);
myCurrentImageName = "kabaday1";
} catch (IOException e) {
e.printStackTrace();
}
} else if (myCurrentImageName.equals("kabaday1")) {
try {
myWallpaperManager.setResource(R.drawable.uhud1);
myCurrentImageName = "uhud1";
} catch (IOException e) {
e.printStackTrace();
}
} else if (myCurrentImageName.equals("uhud1")) {
try {
myWallpaperManager.setResource(R.drawable.bus);
myCurrentImageName = "bus";
} catch (IOException e) {
e.printStackTrace();
}
} else if (myCurrentImageName.equals("bus")) {
try {
myWallpaperManager.setResource(R.drawable.muzdalifah);
myCurrentImageName = "muzdalifah";
} catch (IOException e) {
e.printStackTrace();
}
} else if (myCurrentImageName.equals("muzdalifah")) {
try {
myWallpaperManager.setResource(R.drawable.tentcity);
myCurrentImageName = "tentcity";
} catch (IOException e) {
e.printStackTrace();
}
} else {
try {
myWallpaperManager.setResource(R.drawable.madina1);
myCurrentImageName = "madina1";
} catch (IOException e) {
e.printStackTrace();
}
} // End if myCurrentImageName.equals("kabaday1").
} // End if bln_checkbox_changing_is_activated == true.
editor.putString("current_image", myCurrentImageName); // value to store
editor.commit();
} // End method onReceive.
图像的渲染取决于以下内容: 屏幕大小 屏幕密度 决议 您最好完整阅读以下文档,以了解如何处理这种情况:
MyWallperManager此图像视图应为填充父视图。RU是否为该文件提供了固定大小?添加以显示此权限我阅读了链接中的文档,但它非常混乱,但我确实看到了一些关于9-patch png文件的内容,因此我将尝试一下,看看图像是否自动调整大小。我发现9-patch不支持作为壁纸,所以我想我我需要另一种方法。Android附带了这个应用程序,允许你导入图像并从中创建壁纸。我希望我能更新他们用来使其工作的秘密,因为他们的应用程序将图像缩放到正确的大小。没有固定的大小,但我会编辑代码部分,以便您可以看到我用于更改壁纸的所有代码。