【问题标题】:How to scale a wallpaper image based on the device type如何根据设备类型缩放壁纸图像
【发布时间】:2016-03-05 02:31:23
【问题描述】:

我正在开发一个应用程序,其中设备的壁纸图像应该以固定的时间间隔更改。我将图像保存在可绘制文件夹中。我正在使用 WallpaperManager 将这些图像设置为壁纸。

为了确保应用程序在各种设备上都能正常运行,我在 res 目录中的各种文件夹(如 drawable-small、drawable-xlarge 文件夹)中保存了多个不同大小的图像副本。但是,这些并不能在每台设备上正确扩展。

我的问题是如何确保壁纸图片完美地适合每台设备。我必须以编程方式进行吗?任何示例代码都会有很大帮助。谢谢。

这是我使用的代码

Drawable drawable;
WallpaperManager wpm;

@Override
    public void onCreate() {
        super.onCreate();
        wpm=WallpaperManager.getInstance(WallAlarm.this);
        drawable = getResources().getDrawable(R.drawable.two);
    }

     Bitmap wallpaper=((BitmapDrawable)drawable).getBitmap();
     ImageView iv=new ImageView(this);
     iv.setImageDrawable(drawable);
     iv.setScaleType(ScaleType.FIT_XY);

     try {
            wpm.setBitmap(wallpaper);
     } catch (IOException e) {
            e.printStackTrace();
     }

}

}

【问题讨论】:

    标签: android wallpaper


    【解决方案1】:

    你可以使用

    Display display = Activity.getWindowManager().GetDefaultDisplay();
    display.getHeight();
    display.getWidth();
    

    根据屏幕比例选择图片。

    或使用"scaleType option"

    【讨论】:

    • 谢谢..我正在尝试使用 display.getHeight()。但不知何故,图像在较小的设备上不断被裁剪。此外,我不确定如何通过可绘制图像文件对墙纸图像使用 scaleType 选项。请帮忙。
    • 您的壁纸图片是 ImageView?所以你可以做这样的事情:iv.setImageBitmap(bitmap); (或 iv.setImageDrawable) iv.setScaleType(ScaleType.FIT_CENTER);
    • 再次感谢。我尝试在我的代码中使用图像视图。但我仍然不确定如何将图像视图与我的墙纸相关联。我已经编辑了我的原始问题并输入了一些代码。如果可能的话,请通过它并帮助我。抱歉,我对 Android 有点陌生,所以有点困惑。
    【解决方案2】:

    尝试使用DisplayMetrics之类的东西,并根据显示缩放/裁剪图像:

    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    
    metrics.heightPixels;
    metrics.widthPixels;
    

    或使用或getSize():

    Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    int width = size.x;
    int height = size.y;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-28
      • 2014-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多