在Android中设置壁纸

7

我正在开发一个简单的应用程序,根据用户输入设置壁纸。

我缺少设置壁纸的代码。

我在许多网站上寻找它,但都没有找到。

有人可以发布一段示例代码,将保存在res文件夹中的可绘制对象设置为壁纸吗?


一切都在文档中: http://developer.android.com/reference/android/app/WallpaperManager.html - Romain Guy
3个回答

5

适用于 Android 1.5 及以上版本

public void setWallpaper() {
  Context context = this.getBaseContext(); 
  Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), mImageIds[pos]);

  context.setWallpaper(mBitmap);
}

非常感谢!!! 你知道我怎么能解决像素化问题吗? 我听说这个应用程序:壁纸设置和保存可以产生超清晰的壁纸,它是不是只使用裁剪方法来调整壁纸到屏幕上? 再次感谢。 - Amine
无法确定...在发表评论之前,我需要进行搜索。 - success_anil

2

你可以尝试一下

InputStream inputStream = getResources().openRawResource(wallpaperResource);
Bitmap setWallToDevice = BitmapFactory.decodeStream(inputStream);

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

然而,这种方法已被弃用,你可以使用。
try {
WallpaperManager.getInstance(getApplicationContext()).setResource(wallpaperResource);
} catch (IOException e){
e.printStackTrace();
}

0

以下是我们在Android应用程序中如何设置壁纸的方法:

MainActivity.Java

public class AlarmActivity extends Activity{



       @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
           setContentView(R.layout.activity_main);



            WallpaperManager myWallpaperManager
                    = WallpaperManager.getInstance(getApplicationContext());


                    try {
                        myWallpaperManager.setImageResource(R.raw.sample);
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }

    }
}

Manifest.xml

你应该提供这个权限

<uses-permission android:name="android.permission.SET_WALLPAPER" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接