我有一个大问题...终于完成了我的应用程序,但无法分发它,因为在某些手机上壁纸质量很差。我在Note 4,Galaxy S4和Galaxy S2上测试我的应用程序。 Note4和S2的壁纸质量很完美但是用S4(想想会有更多的手机出现这样的问题)我不知道该怎么做。尝试了许多不同的方式设置壁纸,与裁剪,选项,直接没有裁剪和选项,jpg,png,但每次都是相同的结果,即使与Android壁纸设置它是相同的。感谢您的任何帮助。有屏幕拍摄和设置壁纸的简单代码:
imgur.com/3hngfbm Note4 - PS从2160x1920到2880x2560 JPG的高档(不能发布3个链接)
S2 - downscale with PS from 2160x1920 to 960x800 JPG
public void setWallpaper() {
WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getActivity().getApplicationContext());
Bitmap bmp = BitmapFactory.decodeStream(getResources().openRawResource(R.raw.img6));
try {
myWallpaperManager.setBitmap(bmp);
Toast.makeText(getActivity().getApplicationContext(), "Set wallpaper successfully!", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
e.printStackTrace();
}
}
编辑: 我在另一个S4上检查过这个壁纸,但它是根据Cyanogenmod Marshmallow生根的。质量非常完美,如Note 4和S2。质量差的S4有android 5.0.1
答案 0 :(得分:1)
也许这是电话解决问题。您是否尝试在项目中放置不同的图像尺寸? Android已将其设置为支持多种屏幕尺寸,这意味着手机的不同分辨率将访问适当的图像尺寸。
试着看一下:https://developer.android.com/guide/practices/screens_support.html 您还必须使用相同的图像名称放置它们。 Android会自动为您访问它们。尝试将它们放在链接中指示的相应文件夹中。
或者为什么不跳过bmp转换?像这样:
public void setWallpaper() {
WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext());
try {
myWallpaperManager.setResource(R.drawable.img6);
Toast.makeText(getActivity().getApplicationContext(), "Set wallpaper successfully!", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
并确保将其添加到清单中:
<uses-permission android:name="android.permission.SET_WALLPAPER"/>