我在设置壁纸时遇到问题。我的壁纸图片大小是18 MB(jpeg)。我可以成功设置壁纸,但需要12-15秒。这很烦人。如何在5-6秒或更短的时间内设置壁纸?我已经读了一个星期了。我脑子里有一些想法,但我不知道怎么做。
我不想恶化或降低分辨率。 (我尝试过sampleSize函数,但我的分辨率降低了)
我很困惑。我在下面分享了我的部分代码。
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();
}
}
答案 0 :(得分:0)
我不知道你从哪里得到你的图像,但即使在4k分辨率下,18MB对于JPEG也是很有用的。 Google在每个主题上都有很多材料,可能与您的应用程序开发有关。我建议阅读how to reduce image size上的文章。几年前我自己写了simple wallpaper application。我没有使用应用程序发送图像,但只有非常小的缩略图。如果用户想要从我的网络服务器下载完整分辨率图像。希望它有所帮助: - )