今天做demo,设置桌面每天自动更新背景,但是桌面的背景都是被系统裁剪过的图片,上网百度了一下,有个过时的方法,改进后果然有用了!
Bitmap bmp=BitmapFactory.decodeResource
(getResources(), bg[DailyBg]);
try
{
// super.setWallpaper(bmp);
WallpaperManager instance = WallpaperManager.getInstance(ChangeBgImage.this);
// int desiredMinimumWidth = getWindowManager().getDefaultDisplay().getHeight(); //方法已经过时
// int desiredMinimumHeight = getWindowManager().getDefaultDisplay().getHeight();//方法已经过时
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int desiredMinimumWidth = dm.widthPixels;
int desiredMinimumHeight = dm.heightPixels;
Log.v("ss",""+desiredMinimumWidth);
Log.v("ss",""+desiredMinimumHeight);
instance.suggestDesiredDimensions(desiredMinimumWidth, desiredMinimumHeight);
instance.setBitmap(bmp);
Toast.makeText(ChangeBgImage.this,"壁纸设置成功",Toast.LENGTH_SHORT).show();
}
catch (IOException e)
{
e.printStackTrace();
}
}
就是在获取屏幕大小的地方老方法已经被注释了,用了新的方法获取了屏幕的大小。
对了还要在清单文件里将权限加上,这点很重要,我找了半天才发现,suggestDesiredDimensions方法需要加权限
好了 ,菜鸟大功告成。
原文:/wangjingyao/p/4451430.html