使用以下代码可以解决此问题:
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int screenWidth = displayMetrics.widthPixels;
int screenHeight = displayMetrics.heightPixels;
Bitmap bitmap= //从图片资源中获取壁纸Bitmap
// 先计算图片与屏幕大小的比例
float scaleX = (float)screenWidth/bitmap.getWidth();
float scaleY = (float)screenHeight/bitmap.getHeight();
// 根据比例大得来选择缩放宽度还是高度
float scale = scaleX > scaleY ? scaleX : scaleY;
// 根据缩放比例得到新的位图
Bitmap newBitmap = Bitmap.createScaledBitmap(bitmap, (int)(bitmap.getWidth()*scale), (int)(bitmap.getHeight()*scale), true);
需要注意的是,由于屏幕的大小和分辨率各种不同,有些设备的宽高比例并不是16:9,所以在使用此方法时要特别小心,最好进行多个设备的测试和适配。
上一篇:bi指标看板
下一篇:壁纸服务图像绘制性能