我在Eclipse的第3行代码中遇到此错误:
Bitmap类型中的createScaledBitmap(Bitmap,int,int,boolean)方法不适用于参数(int,int,int,boolean)
以下是代码:
int newWidth = myWallpaperManager.getDesiredMinimumWidth();
int newHeight = myWallpaperManager.getDesiredMinimumHeight();
Bitmap resizedBitmap = Bitmap.createScaledBitmap(R.drawable.kabacloseup, newWidth, newHeight, false);
myWallpaperManager.setResource(resizedBitmap);
你能告诉我如何让createScaledBitmap接受参数吗?
我也在第4行收到此错误:
WallpaperManager类型中的方法setResource(int)不适用于参数(Bitmap)
更新
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.outWidth = myWallpaperManager.getDesiredMinimumWidth();
opt.outHeight = myWallpaperManager.getDesiredMinimumHeight();
Bitmap b = BitmapFactory.decodeResource(context.getResources(), R.drawable.kabacloseup, opt);
try {
myWallpaperManager.setBitmap(b);
myCurrentImageName = "kabacloseup";
} catch (IOException e) {
e.printStackTrace();
}
答案 0 :(得分:2)
您在createScaledBitmap(Bitmap,int,int,boolean)方法中使用了资源ID(R.drawable.kabacloseup,这是int)而不是Bitmap。
WallpaperManager setResource(int resid)方法采用资源ID,而不是位图。
答案 1 :(得分:1)
试试这个
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.outWidth = myWallpaperManager.getDesiredMinimumWidth();
opt.outHeight = myWallpaperManager.getDesiredMinimumHeight();
Bitmap b = BitmapFactory.decodeResource(context.getResources(), R.drawable.kabacloseup, opt);
答案 2 :(得分:0)
我想你想这样做:myWallpaperManager.setImageBitmap(resizedBitmap);
不是吗?
对于Bitmap.createScaledBitmap(...
您无法将R.drawable.kabacloseup
作为参数传递,您必须先将其作为位图检索:BitmapFactory.decodeResource(getResources(), R.drawable.kabacloseup)
希望有所帮助
答案 3 :(得分:0)
您需要先从您的drawable创建Bitmap
:
Resources res = context.getResources();
Bitmap b = BitmapFactory.decodeResource(res, R.drawable.icon);
然后在Bitmap.createScaledBitmap()
中使用它。希望这会有所帮助。