Тип Bitmap не применим для аргументов (int, int, int, boolean) - PullRequest
0 голосов
/ 03 ноября 2011

Я получаю эту ошибку в 3-й строке кода в Eclipse:

Метод createScaledBitmap (Bitmap, int, int, boolean) в типе Bitmap не применим для аргументов (int, int, int, логическое)

Вот код:

int newWidth = myWallpaperManager.getDesiredMinimumWidth();
int newHeight = myWallpaperManager.getDesiredMinimumHeight();

Bitmap resizedBitmap = Bitmap.createScaledBitmap(R.drawable.kabacloseup, newWidth, newHeight, false);

myWallpaperManager.setResource(resizedBitmap);

Можете ли вы сказать мне, как заставить createScaledBitmap принимать аргументы?

Я также получаю эту ошибку в 4-й строке:

Метод setResource (int) в типе WallpaperManager не применим для аргументов (растровое изображение)

Обновление:

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 ]

2 голосов
/ 03 ноября 2011

Вы использовали идентификатор ресурса (R.drawable.kabacloseup, который является int) вместо растрового изображения в методе createScaledBitmap (Bitmap, int, int, boolean).

WallpaperManager setResource (int остаток) метод принимает идентификатор ресурса, не растровое изображение.

1 голос
/ 03 ноября 2011

Попробуйте это

BitmapFactory.Options opt = new BitmapFactory.Options();
opt.outWidth = myWallpaperManager.getDesiredMinimumWidth();
opt.outHeight = myWallpaperManager.getDesiredMinimumHeight();
Bitmap b = BitmapFactory.decodeResource(context.getResources(), R.drawable.kabacloseup, opt);
0 голосов
/ 03 ноября 2011

Сначала вам нужно создать Bitmap из вашего рисованного элемента:

Resources res = context.getResources();
Bitmap b = BitmapFactory.decodeResource(res, R.drawable.icon);

, а затем использовать его в Bitmap.createScaledBitmap().Надеюсь, это поможет.

0 голосов
/ 03 ноября 2011

Я думаю, вы хотите сделать это: myWallpaperManager.setImageBitmap(resizedBitmap); нет?

для Bitmap.createScaledBitmap(... вы не можете передать R.drawable.kabacloseup в качестве аргумента, вы должны извлечь его как растровое изображение до: BitmapFactory.decodeResource(getResources(), R.drawable.kabacloseup)

надеюсь, это поможет

...