我目前一直在尝试使用我制作的 Android 壁纸应用程序设置手机背景。然而,每次我按“设置背景”时,它都会拉伸(stretch)图像。
这是我正在使用的代码
btnSetWallpaper.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
WallpaperManager wManager;
try {
// Bitmap bitmap = ((BitmapDrawable)imageView1.getDrawable()).getBitmap();
wManager = WallpaperManager.getInstance(view.getContext().getApplicationContext());
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int fullWidth = size.x;
int fullHeight = size.y;
//int fullWidth = wManager.getDesiredMinimumWidth();
//int fullHeight = wManager.getDesiredMinimumHeight();
Log.d("Debug", Integer.toString(fullWidth));
Log.d("Debug", Integer.toString(fullHeight));
Bitmap bitmapResized = Bitmap.createScaledBitmap(bmpWallpaper, fullWidth * 2, fullHeight, true);
wManager.setBitmap(bitmapResized);
} catch (IOException e) {
e.printStackTrace();
}
Core.makeNotification(view.getContext(), "MyNotification", "Your wallpaper has been set, enjoy!");
Core.makeAlert(view.getContext(), "Wallpaper set", "Your wallpaper has been set, enjoy!");
}
});
最佳答案
好吧,在 bakriOnFire 发表评论后,我在他给我的链接上进行了搜索,将我的一些代码与那里描述的代码结合起来后,我找到了解决方案!
btnSetWallpaper.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
WallpaperManager wManager = WallpaperManager.getInstance(view.getContext());
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int fullWidth = size.x;
int fullHeight = size.y;
//int fullWidth = wManager.getDesiredMinimumWidth();
//int fullHeight = wManager.getDesiredMinimumHeight();
Log.d("Debug", Integer.toString(fullWidth));
Log.d("Debug", Integer.toString(fullHeight));
Bitmap bitmapResized = Bitmap.createScaledBitmap(bmpWallpaper, fullWidth, fullHeight, true);
wManager.suggestDesiredDimensions(bitmapResized.getWidth(), bitmapResized.getHeight());
wManager.setBitmap(bitmapResized);
} catch (IOException e) {
e.printStackTrace();
}
Core.makeNotification(view.getContext(), "MCPaper", "Your wallpaper has been set, enjoy!");
Core.makeAlert(view.getContext(), "Wallpaper set", "Your wallpaper has been set, enjoy!");
}
});
我真的希望将来这能帮助人们摆脱困境,因为我在这方面花了很长时间。享受
关于java - Android,设置背景拉伸(stretch)或放大但永远不会正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18441301/