【问题标题】:How to set a wallpaper as the homescreen full screen如何将壁纸设置为主屏全屏
【发布时间】:2018-09-01 11:37:43
【问题描述】:

我有一张适合我手机尺寸的壁纸:

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 被裁剪然后设置为主屏幕。我想设置完整的尺寸和质量。

【问题讨论】:

  • 不要解码你的图片路径,更多信息请看this

标签: android android-wallpaper


【解决方案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

【讨论】:

    【解决方案2】:

    试试这个:

    像这样将壁纸设置为全尺寸

    在清单中添加权限

    清单文件

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

    Java 文件

    final WallpaperManager wallpaperManager = (WallpaperManager)getSystemService(
                Context.WALLPAPER_SERVICE);
    
    Bitmap myBitmap = Bitmap.createScaledBitmap(
        Const.cropped_bitmap,
        wallpaperManager.getDesiredMinimumWidth(),
        wallpaperManager.getDesiredMinimumHeight(), 
        true);
    
    wallpaperManager.suggestDesiredDimensions(
        wallpaperManager.getDesiredMinimumWidth(),
        wallpaperManager.getDesiredMinimumHeight());
    
    try {
        wallpaperManager.setBitmap(myBitmap);
        Toast.makeText(CropImageActivity.this,
            CropImageActivity.this.getString(R.string.wallpaper_has_been_set), 0).show();
    }
    catch (IOException e) {
        e.printStackTrace();
        Toast.makeText(CropImageActivity.this, "Wallpaper not set", 0).show();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多