Java 如何获取当前墙纸,更改它,然后稍后恢复它

Java 如何获取当前墙纸,更改它,然后稍后恢复它,java,android,android-wallpaper,Java,Android,Android Wallpaper,我正在为为什么这段代码无法编译而苦苦挣扎,我正在尝试获取当前的墙纸,然后对其进行更改,然后给出将其更改回来的选项 下面是我的代码,它不能编译,因为它不能解析符号“context”,它说我的drawable不能转换成一个没有任何意义的整数 我正在尝试将可绘制更改为位图,并且已导入导入 android.content.Context 那么我做错了什么呢??这是我的代码,onClick存储墙纸并启动更改活动,onPush方法重置墙纸并退出应用程序,任何帮助都将不胜感激谢谢 import android

我正在为为什么这段代码无法编译而苦苦挣扎,我正在尝试获取当前的墙纸,然后对其进行更改,然后给出将其更改回来的选项

下面是我的代码,它不能编译,因为它不能解析符号“context”,它说我的drawable不能转换成一个没有任何意义的整数

我正在尝试将可绘制更改为位图,并且已导入导入

android.content.Context

那么我做错了什么呢??这是我的代码,onClick存储墙纸并启动更改活动,onPush方法重置墙纸并退出应用程序,任何帮助都将不胜感激谢谢

import android.content.Context;
import android.app.Activity;
import android.app.WallpaperInfo;
import android.app.WallpaperManager;
import android.content.ComponentName;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import java.io.IOException;
import static android.app.WallpaperManager.*;

public class SetWallpaperActivity extends Activity {

public Drawable originalWallpaper;
public Bitmap paper1;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}
        public void onClick(View view) {

            WallpaperManager wm = WallpaperManager.getInstance(this);
            originalWallpaper = wm.getDrawable();

            paper1 = BitmapFactory.decodeResource(context.getResources(),
                    originalWallpaper);
            Intent intent = new Intent(
                    ACTION_CHANGE_LIVE_WALLPAPER);
            intent.putExtra(EXTRA_LIVE_WALLPAPER_COMPONENT,
                    new ComponentName(this, MyWallpaperService.class));
            startActivity(intent);
        }
    public void onPush(View view) {
    WallpaperManager wm = WallpaperManager.getInstance(this);
    WallpaperInfo wallpaperInfo = wm.getWallpaperInfo();
    if (wallpaperInfo != null) {
        try {
            wm.setBitmap(paper1);
            finish();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    finish();
    System.exit(0);
}
}
这是我得到的错误代码:
“android.graphics.BitmapFactory”中的“decodeResource(android.content.res.Resources,int)”不能应用于“(android.content.res.Resources,android.graphics.drawable.drawable)”

1。将上下文更改为“this”或将其删除,因为代码在活动本身中,并且您可以直接调用getResources(),而无需在活动中使用任何上下文。P.S-问具体的问题,你得到了什么错误,并提供一些可以理解的代码谢谢Gaurav Chauhan,我尝试将上下文更改为这个,解决了上下文问题,但仍然没有编译,表示它正在从drawable变量originalWallpaper中查找整数,而不是drawable paper1=BitmapFactory.decodeResource(context.getResources(),originalWallpaper);使用此
位图位图=((BitmapDrawable)originalWallpaper).getBitmap()
将drawable更改为BitMap非常感谢您的帮助,工作非常完美@乔汉