【问题标题】:How do I center an Android wallpaper bitmap with WallpaperManager?如何使用 WallpaperManager 将 Android 壁纸位图居中?
【发布时间】:2018-10-10 02:07:14
【问题描述】:

我用来为位图设置背景的代码是

wallpaperManager.setBitmap(result, null, true, WallpaperManager.FLAG_SYSTEM);
wallpaperManager2.setBitmap(result, null, true, WallpaperManager.FLAG_LOCK);

但是,图像没有居中,我相信它与null 参数有关,它接受一个 Rect 作为visibleCropHint

如何将result 位图设置为以 X 和 Y 为中心?

【问题讨论】:

    标签: android android-studio android-layout android-bitmap android-wallpaper


    【解决方案1】:

    正如doc 所说:

    为这个参数传递 null 意味着完整的图像应该是 根据图像和设备的纵横比显示如果可能, 等等

    所以不能保证图片完全显示。

    试试这个(来自here):

    Bitmap img = BitmapFactory.decodeStream(getResources().openRawResource(R.drawable.paper));
    
    DisplayMetrics metrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    int height = metrics.heightPixels; 
    int width = metrics.widthPixels;
    Bitmap bitmap = Bitmap.createScaledBitmap(img, width, height, true); 
    
    WallpaperManager wallpaperManager = WallpaperManager.getInstance(MainActivity.this); 
     try {
      wallpaperManager.setBitmap(bitmap);
     } catch (IOException e) {
      e.printStackTrace();
     }
    

    【讨论】:

    • 这行得通,但是,我不想扭曲图像。以上拉伸图像以适应显示器,但我只想将图像居中放置并裁剪不适合的内容。 createScaledBitmap 可以做到这一点吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多