【发布时间】:2014-12-07 03:33:05
【问题描述】:
我在一个看起来并不复杂的问题上花了几个小时,但是尽管有关于这个主题的所有现有消息,我仍然没有找到解决方案......
我正在使用 viewpager,在适配器中我有一个按钮和一个 imageview。当使用 myWallpaperManager.setBitmap(image) 单击按钮时,我想将 imageview 中的图片设置为墙纸。在此之前,我调整图片大小以适合屏幕大小。壁纸已更改,但图片保持缩放和裁剪。我想用整张图片设置壁纸。 我对 getDefaultDisplay() 的宽度和高度以及 myWallpaperManager.getDesiredMinimumHeight/Width() 的宽度和高度具有相同的值。
我尝试了许多不同的方法,但都不起作用。我不知道还能做什么!非常感谢您的回答。
代码如下:
Button ButWallpaper = (Button) viewLayout.findViewById(R.id.ButWallpaper);
ButWallpaper.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
Bitmap image;
Bitmap imagelarge = ((BitmapDrawable)imageView2.getDrawable()).getBitmap();
int Measuredwidth = 0;
int Measuredheight = 0;
Point size = new Point();
WindowManager w = _activity.getWindowManager();
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
w.getDefaultDisplay().getSize(size);
Measuredwidth = size.x;
Measuredheight = size.y;
}else{
Display d = w.getDefaultDisplay();
Measuredwidth = d.getWidth();
Measuredheight = d.getHeight();
}
Log.i("TAG", String.valueOf(Measuredwidth));
Log.i("TAG", String.valueOf(Measuredheight));
image = Bitmap.createScaledBitmap(imagelarge, Measuredwidth, Measuredheight,true);
// TODO Auto-generated method stub
WallpaperManager myWallpaperManager
= WallpaperManager.getInstance(_activity.getApplicationContext());
try {
myWallpaperManager.setBitmap(image);
myWallpaperManager.suggestDesiredDimensions(Measuredwidth, Measuredheight);
Log.i("TAG", String.valueOf(myWallpaperManager.getDesiredMinimumHeight()));
Log.i("TAG", String.valueOf(myWallpaperManager.getDesiredMinimumWidth()));
Toast.makeText(_activity.getApplicationContext(), "Wallpaper changed", toast.LENGTH_LONG).show();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}});
【问题讨论】: