不同的手机/不同的图像质量

时间:2016-05-27 05:50:55

标签: java android image wallpaper

我有一个大问题...终于完成了我的应用程序,但无法分发它,因为在某些手机上壁纸质量很差。我在Note 4,Galaxy S4和Galaxy S2上测试我的应用程序。 Note4和S2的壁纸质量很完美但是用S4(想想会有更多的手机出现这样的问题)我不知道该怎么做。尝试了许多不同的方式设置壁纸,与裁剪,选项,直接没有裁剪和选项,jpg,png,但每次都是相同的结果,即使与Android壁纸设置它是相同的。感谢您的任何帮助。有屏幕拍摄和设置壁纸的简单代码:

imgur.com/3hngfbm Note4 - PS从2160x1920到2880x2560 JPG的高档(不能发布3个链接)

S4 - 2160x1920 JPG

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

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"/>