2

我正在尝试在 Android 中将资源/流设置为墙纸。我使用 WallpaperManager 类及其方法 setResource/setStream 来执行此操作。在将它们设置为墙纸之前,我通常使用 BitmapFactory.Options 缩放图像。但这次我想尝试不进行任何缩放的完整图像。所以我尝试将分辨率为 5005 x 3274 的图像设置为墙纸,不进行任何缩放。令我惊讶的是,avd 的壁纸更改为默认的库存壁纸。没有异常,也没有错误日志。下面是我使用的代码。

那么可以设置的壁纸尺寸有什么限制吗?我在 WallpaperManager 文档中找不到有关最大图像大小的任何信息。任何帮助,将不胜感激。

public void onBtnClick(View view) {
    Thread t = new Thread(new Runnable() {
        public void run(){
            try{
               mgr.setResource(R.drawable.wallpaper);
               mHandler.post(new Runnable() {
                   public void run(){
                       Toast.makeText(MainActivity.this, R.string.toast_success, Toast.LENGTH_SHORT).show();
                   }
               });
            } catch(Exception ioe) { 
                  Log.w("WallpaperManager", ioe.getMessage());
            }
        }
    }
}
4

1 回答 1

2

我知道为时已晚...无论如何,它应该在 4096 x 4096 以内(在 API 17,SDK 4.2 下测试),否则家庭应用程序将崩溃并设置默认壁纸。

于 2013-10-29T12:03:12.833 回答