我正在为为什么这段代码无法编译而苦苦挣扎,我正在尝试获取当前壁纸,然后更改它,然后提供将其更改回来的选项。
下面是我的代码,它无法编译,因为它无法解析符号“上下文”,并且它说我的可绘制对象无法转换为没有任何意义的整数。
我正在尝试将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。可绘制的。可绘制的)'