【问题标题】:How to rotate background image in android如何在android中旋转背景图像
【发布时间】:2017-10-30 13:45:34
【问题描述】:

我有纵向的背景图片。但是当我改变手机的旋转(到横向)时,应用程序会改变图像的比例。我希望应用旋转它。

【问题讨论】:

  • 你的意思是,你想单独旋转应用 UI(不旋转背景图片)?
  • @Sackurise 不,我也想旋转 BG 图像。但它会改变比例,而不是旋转
  • 为什么用 Kotlin 标记?这在 Java 和 Kotlin 中都是零代码。

标签: android image-rotation autorotate


【解决方案1】:

您可以使用此代码来旋转图像

  private static Bitmap rotateImage(Bitmap source, float angle) {
    Matrix matrix = new Matrix();
    matrix.postRotate(angle);
    return Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(),
            matrix, true);
}

【讨论】:

    【解决方案2】:

    使用您想要的任何编辑器手动旋转您的图像,并将其放在 drawable-land 文件夹中。

    这样,当手机旋转到横向时,系统将拾取您放置在该文件夹中的资源(图像),而不是默认可绘制文件夹中使用的“纵向”资源。

    此 -land 扩展可与任何其他扩展一起使用,因此您可以拥有 drawable-xhdpi-land。

    屏幕方向端口 土地
    端口:设备处于纵向(垂直) 土地:设备处于横向(水平) 如果用户旋转屏幕,这可能会在应用程序的生命周期内发生变化。有关这如何在运行时影响您的应用程序的信息,请参阅处理运行时更改。另请参阅方向配置字段,它指示当前设备方向。

    https://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources

    【讨论】: