如何在Android中高效设置壁纸?

时间:2017-03-13 13:27:18

标签: java android bitmap

我在设置壁纸时遇到问题。我的壁纸图片大小是18 MB(jpeg)。我可以成功设置壁纸,但需要12-15秒。这很烦人。如何在5-6秒或更短的时间内设置壁纸?我已经读了一个星期了。我脑子里有一些想法,但我不知道怎么做。

我不想恶化或降低分辨率。 (我尝试过sampleSize函数,但我的分辨率降低了)

  • 缩小图像尺寸(我不知道是否可能)
  • 使用库ex:picasso,glide library(我不知道这是否可行)
  • 保存位图较小的尺寸(可能不会丢失质量吗?)

我很困惑。我在下面分享了我的部分代码。

int resIdWallpaper = res.getIdentifier(th.name + "_wallpaper","drawable",th.packageName);

   Bitmap drawableBitmap ;
   BitmapFactory.Options options = new BitmapFactory.Options();
                    options.inPreferredConfig = Bitmap.Config.ARGB_8888;
                    options.inSampleSize=1;
if (resIdWallpaper != 0) {
    drawableBitmap = BitmapFactory.decodeResource(res, resIdWallpaper, options);
    WallpaperManager wm= WallpaperManager.getInstance(mContext.getApplicationContext());

    try{

        wm.setBitmap(drawableBitmap);

    }
    catch(IOException e)
    {
        //Toast.makeText(mContext, "Wallpaper not set successfully",Toast.LENGTH_SHORT).show();
    }
}

1 个答案:

答案 0 :(得分:0)

我不知道你从哪里得到你的图像,但即使在4k分辨率下,18MB对于JPEG也是很有用的。 Google在每个主题上都有很多材料,可能与您的应用程序开发有关。我建议阅读how to reduce image size上的文章。几年前我自己写了simple wallpaper application。我没有使用应用程序发送图像,但只有非常小的缩略图。如果用户想要从我的网络服务器下载完整分辨率图像。希望它有所帮助: - )