类型Bitmap不适用于参数(int,int,int,boolean)

时间:2011-11-03 11:19:25

标签: android bitmap wallpaper image-resizing

我在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();
}

4 个答案:

答案 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()中使用它。希望这会有所帮助。