Изменить размер обоев с помощью кода? - PullRequest
1 голос
/ 16 октября 2011

Можете ли вы сказать мне лучший способ изменить размер обоев домашнего экрана, используя код, основанный на том, находится ли устройство в портретном или альбомном режиме?

Мы хотим убедиться, что оно будет работать на многих устройствах.

Пожалуйста, предоставьте образцы кода.

В настоящее время мы используем это для установки обоев:

myWallpaperManager.setResource(R.drawable.thewallpaper);

Обои также являются файлами png.

Обновление:

Основываясь на коде из coder_for_life22, я изменил его на следующее:

        try {
            myWallpaperManager.setResource(R.drawable.kabaday1);

            myCurrentImageName = "kabaday1";

            Bitmap myBitmap = BitmapFactory.decodeResource(context.getResources(),
                    R.drawable.kabaday1);

            Bitmap bitmapResized = Bitmap.createScaledBitmap(myBitmap, 600, 300,
                    false);

            myWallpaperManager.setBitmap(bitmapResized);

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

Он масштабирует изображение, но Android повторно отображает и расширяет изображение с тем же размером, что и раньше.до уменьшения масштаба только на этот раз качество изображения нечеткое, и оно все еще кажется увеличенным и не отображает все изображение, которое должно быть уменьшено.

Странное поведение.Возможно, мне нужно добавить еще немного кодирования, чтобы оно действительно уменьшалось и оставалось четким.По крайней мере, я думаю, что это должно быть сделано, потому что изображение должно быть меньше.

Есть много приложений, которые делают то же самое.Хотел бы я знать, как они это делают.

Спасибо.

1 Ответ

1 голос
/ 16 октября 2011

Вам нужно будет изменить размер изображения, используя это

 Bitmap bitmapResized = Bitmap.createScaledBitmap(src, dstWidth, dstHeight, filter);

 myWallpaperManager.setBitmapResource(bitmapResized);

РЕДАКТИРОВАТЬ: Вам также может понадобиться изменить тип масштаба изображения, которое вы используете.вставив это в xml, где находится imageview.

  android:scaleType = "FIT_CENTER"

ИЛИ вы можете сделать это программно, вставив это в приведенный выше код.

myWallpaperManager.setScaleType(ImageView.FIT_CENTER);

Это должно избавить от увеличенногово взгляде вы получаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...