android - 为什么我的主屏幕壁纸损坏了?

标签 android

您好,我正在编码以设置主屏幕壁纸。它工作正常。但是我的图像像素完全损坏,然后我的墙纸不适合主屏幕的实际尺寸。我正在尝试锻炼不同尺寸的图像。不幸的是它不适合我。如何解决。

我的代码在这里

WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
Drawable drawable = getResources().getDrawable(R.drawable.newimage);
Bitmap wallpaper = ((BitmapDrawable) drawable).getBitmap();           
try 
{
    wallpaperManager.setBitmap(wallpaper);
} 
catch (IOException e) 
{
    e.printStackTrace();
}

我的截图原图
enter image description here

我的屏幕截图 Android 模拟器主屏幕
enter image description here

为什么我的原图在这里损坏了。
如何根据模拟器大小显示我的原始图像

最佳答案

你可以试试这个:

WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
Drawable drawable = getResources().getDrawable(R.drawable.newimage);
Bitmap wallpaper_source = ((BitmapDrawable) drawable).getBitmap();           
try {
    int w = wallpaperManager.getDesiredMinimumWidth();
    int h = wallpaperManager.getDesiredMinimumHeight();
    int x = (w-wallpaper_source.getWidth())/2;
    int y = (h-wallpaper_source.getHeight())/2;
    Bitmap wallpaper = Bitmap.createBitmap(w, h, Config.ARGB_8888);
    Canvas c = new Canvas(wallpaper);
    c.drawBitmap(wallpaper_source, x,y, null);
    wallpaperManager.setBitmap(wallpaper);
} 
catch (IOException e) 
{
    e.printStackTrace();
}

关于android - 为什么我的主屏幕壁纸损坏了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11240871/

相关文章:

android - SoundPool 停止播放

java - 无法解析类型 java.awt.geom.AffineTransform。它是从所需的 .class 文件中间接引用的

android - 错误 : Supplied String module notation 'androidx.cardview.widget.CardView' is invalid

android - 如何在android中制作折叠工具栏?

android - 循环通过id访问资源

java - 如何通过单击菜单项来更改 fragment 的文本

android - 将同一应用程序的免费和付费版本发布到 Android Market 的选项和最佳做法

android - 寻找一种方法来在显示 admob 插页式广告时停止强制我的应用程序进入全屏

java - "table * has no column named * "错误,SQLite

android - 在 React Native 应用程序上使用 Jest 进行平台特定测试