Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 壁纸在应用后自动裁剪_Java_Android_Xml_Wallpaper - Fatal编程技术网

Java 壁纸在应用后自动裁剪

Java 壁纸在应用后自动裁剪,java,android,xml,wallpaper,Java,Android,Xml,Wallpaper,我从一个源代码编译了一个墙纸应用程序,插入了一些1230x720的图片,但是当我使用该应用程序应用墙壁时,它们总是被自动裁剪。我应该在代码中更改什么以应用于原始大小和分辨率 private Bitmap getImage(int resourceId) { Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), resourceId, null); Bitmap scaledBitmap = Bit

我从一个源代码编译了一个墙纸应用程序,插入了一些1230x720的图片,但是当我使用该应用程序应用墙壁时,它们总是被自动裁剪。我应该在代码中更改什么以应用于原始大小和分辨率

private Bitmap getImage(int resourceId) {
    Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), resourceId, null);
    Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, manager.getDesiredMinimumWidth(),   manager.getDesiredMinimumHeight(), true);
    bitmap.recycle();
    bitmap = null;
    return scaledBitmap;
}
下面是一个例子: 1.原图:

2.使用我的应用程序作为壁纸应用后:

源代码:blog.dell-apps.com/set-phone-wallpaper/

谢谢

编辑:HeavyLifter.java中的代码似乎是罪魁祸首,如何将其更改为“适合屏幕分辨率”


图像(720x1230)和manager.getDesiredMinimumWidth()与manager.getDesiredMinimumHeight()的纵横比(720x1280)不同,因此图像会失真


因此,请提供具有合适纵横比的图像,或在应用缩放操作之前裁剪图像

您能告诉我如何保持纵横比吗。我是noob:-(我可以从这里的第二个答案正确地插入我的手机屏幕,但不确定它是否适用于其他具有不同Res的手机是的,这是您必须做的。您可能希望用最大宽度和高度(与设备屏幕大小相比)替换4096。请参阅