0

在我的应用程序中,每个屏幕都有一个背景图像。我想为纵向和横向使用相同的图像,但为了让它看起来不错,我需要在横向时将图像旋转 90 度,这样它就不会被拉伸以填满屏幕。

我的解决方案是只创建图像的两个副本,一个用于放置在可绘制端口中的肖像,另一个用于放置在可绘制区域中的横向。现在我有许多不同的背景,我在我的 apk 中嵌入图像的第二个副本的解决方案导致 apk 大小比需要的大得多。

我如何支持旋转图像,最好是纯 XML。在代码中,我想你可以在 onStart 之前旋转图像,它会起作用,但如果可能的话,我真的宁愿将它保留在 XML 中。

谢谢您的帮助!

4

1 回答 1

0

我想不出在 XML 中做到这一点的方法。但是,如果您创建了一个自定义类,该类继承自您将背景应用到的任何视图(例如,RelativeLayout),那么您可以执行类似的操作

@Override
protected void onSizeChanged(int newWidth, int newHeight, int oldWidth, int oldHeight) {
    if (newWidth > newHeight) {    // landscape
        // rotate the background
    }
}

这样,您只需执行一次旋转,所有视图都会自动旋转其背景。

于 2011-07-31T05:07:45.213 回答