如何将墙纸设置为全屏主屏幕

时间:2018-08-31 04:49:02

标签: android android-wallpaper

我的手机墙纸尺寸合适:

myWallpaper

我想通过以下方式将其设置为主屏幕:

WallpaperManager myWallpaperManager = WallpaperManager.getInstance(this);
String imageFilePath = myWallpaperPath;
Bitmap myBitmap = BitmapFactory.decodeFile(imageFilePath);
if (myBitmap != null) {
    try {
        myWallpaperManager.setBitmap(myBitmap);
    } catch (IOException e) {}
} else {}

我的问题是myWallpaper被裁剪,然后设置为主屏幕。我要设置完整的尺寸和质量。

2 个答案:

答案 0 :(得分:1)

在您的视图上添加此代码,点击

        GetScreenWidthHeight();

        SetBitmapSize();

        wallpaperManager = WallpaperManager.getInstance(MainActivity.this);

        try {
            wallpaperManager.setBitmap(bitmap2);
            wallpaperManager.suggestDesiredDimensions(width, height);
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
});

public void GetScreenWidthHeight(){

    displayMetrics = new DisplayMetrics();

    getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);

    width = displayMetrics.widthPixels;

    height = displayMetrics.heightPixels;
}

public void SetBitmapSize(){

    bitmap2 = Bitmap.createScaledBitmap(bitmap1, width, height, false);
}

为您的项目添加以下权限:

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

有关完整的实现,请查看this link here

答案 1 :(得分:0)

尝试一下:

将壁纸设置为完整尺寸

在清单中添加权限

清单文件

https://directline.botframework.com/v3/directline/conversations/<conversationID>/activities

Java文件

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