使用代码调整壁纸大小?

时间:2011-10-16 15:18:13

标签: android resize wallpaper autoresize image-resizing

你能告诉我使用基于设备处于纵向或横向模式的代码来调整主屏幕壁纸大小的最佳方法吗?

我们希望确保它可以在许多设备上运行。

请提供代码示例。

我们目前正在使用它来设置壁纸:

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 个答案:

答案 0 :(得分:1)

您需要使用此

调整图像大小
 Bitmap bitmapResized = Bitmap.createScaledBitmap(src, dstWidth, dstHeight, filter);

 myWallpaperManager.setBitmapResource(bitmapResized);

编辑:您可能还需要更改正在使用的图像视图的scaleType。将其插入到imageview所在的xml中。

  android:scaleType = "FIT_CENTER"

或者你可以通过在上面的代码中插入它来以编程方式完成。

myWallpaperManager.setScaleType(ImageView.FIT_CENTER);

这应该摆脱你所获得的放大外观。