如何添加设置为墙纸选项在下面的代码在Android中

如何添加设置为墙纸选项在下面的代码在Android中,android,arrays,swipe,wallpaper,Android,Arrays,Swipe,Wallpaper,我正在android应用程序中创建刷卡操作。它工作得很好。现在我想创建设置为墙纸选项,以便用户可以将当前图像设置为墙纸。我添加了一些代码。但它不起作用。请有人帮我把当前的图像做成壁纸 代码- 公共类FullImageActivity扩展活动{ 内部位置; 线性布局完整; 按钮btn; 公共整数[]mThumbId={ R.drawable.kri1,R.drawable.kri2, R.drawable.kri3,R.drawable.kri4, R.drawable.kri5,R.drawab

我正在android应用程序中创建刷卡操作。它工作得很好。现在我想创建设置为墙纸选项,以便用户可以将当前图像设置为墙纸。我添加了一些代码。但它不起作用。请有人帮我把当前的图像做成壁纸

代码-

公共类FullImageActivity扩展活动{
内部位置;
线性布局完整;
按钮btn;
公共整数[]mThumbId={
R.drawable.kri1,R.drawable.kri2,
R.drawable.kri3,R.drawable.kri4,
R.drawable.kri5,R.drawable.kri6,
R.drawable.kri7,R.drawable.kri8,
R.drawable.kri9
};
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.full_图像);
//获取意图数据
Intent i=getIntent();
//所选图像id
position=i.getExtras().getInt(“id”);
full=(线性布局)findViewById(R.id.full);
btn=(按钮)findViewById(R.id.btn);
changeBackground();
btn.setOnClickListener(新建按钮.OnClickListener(){
@凌驾
公共void onClick(视图arg0){
WallperManager MyWallperManager=wallperManager.getInstance(getApplicationContext());
试一试{
设置资源(mThumbId[position]);
}捕获(IOE异常){
e、 printStackTrace();
}
}});
ActivitySwipeDetector ActivitySwipeDetector=新ActivitySwipeDetector(此);
full.setOnTouchListener(activitySwipeDetector);
}
私有void changeBackground(){
充分利用挫折资源(mThumbId[职位]);
}
公共类ActivitySwipeDetector实现View.OnTouchListener{
静态最终字符串logTag=“ActivitySwipedTector”;
静态最终内部最小距离=100;
私人浮动下行,上行;
活动;
公共活动SwipeDetector(活动){
这个。活动=活动;
}
public void onRightToLeftSwipe(){
Log.i(logTag,“rightoleftsweep!”);
如果(位置0){
位置--;
changeBackground();
}
}
公共布尔onTouch(视图v,运动事件){
开关(event.getAction()){
case MotionEvent.ACTION\u DOWN:{
downX=event.getX();
返回true;
}
case MotionEvent.ACTION\u UP:{
upX=event.getX();
浮动deltaX=downX-upX;
//横扫?
如果(数学绝对值(deltaX)>最小距离){
//左还是右
如果(deltaX<0){this.onLeftToRightSwipe();返回true;}
如果(deltaX>0){this.onRightToLeftSwipe();返回true;}
}
否则{
Log.i(logTag,“Swipe仅”+Math.abs(deltaX)+“长,至少需要”+MIN_距离);
return false;//我们不使用该事件
}
返回true;
}
}
返回false;
}
} 

您是否在AndroidManifest中声明了设置墙纸权限

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


你错了。你需要为墙纸设置图像位图。@PiYusHGuPtA你可以使用
墙纸管理器.setBitmap
墙纸管理器.setResource
,或
墙纸管理器.setStream
@adneal我知道我在我的应用程序中使用了它,但看起来是一样的,没有工作,而且在设置为位图之后它就工作了。所以我有了e建议他。这很有效,但当我在设备屏幕上设置图像太大时需要你多一点帮助如何适应?你可以根据资源ID的
可绘制
创建一个缩放的
位图,然后调用
WallperManager.setBitmap
。如果我这样做,则显示错误,并说将数组类型更改为bitmap、 你能帮我解决更多的问题吗。
<uses-permission android:name="android.permission.SET_WALLPAPER" />