Android自动旋转对话框但不是背景图像

Posted

技术标签:

【中文标题】Android自动旋转对话框但不是背景图像【英文标题】:Android auto-rotate dialogs but not background image 【发布时间】:2012-04-12 18:14:26 【问题描述】:

我正在开发一个家庭自动化应用程序,用户可以在其中上传图像(例如平面图),点击房间并执行不同的操作,例如控制照明等。我知道用户点击了哪里通过使用用户也使用颜色图创建的第二张图像。我现在已经设置好了,因此图像必须与设备具有相同的分辨率,这样我就不必处理缩放问题。我还禁用了自动旋转,这样他们就不必担心当设备旋转到纵向时横向照片会被刮掉。换句话说,我懒得处理它。这种方法的问题是出现的任何对话框(在横向查看屏幕时)都会以纵向模式而不是横向模式出现。所以我的问题是,有没有办法让我在屏幕上显示不服从自动旋转的图像,但让对话框跟随自动旋转?或者对我来说也是处理图像自动旋转的正确解决方案? 我想我可以做的一件事是将旋转固定为横向模式,因为大多数平面图都适合横向,但是如果有人确实想要纵向图像怎么办?

【问题讨论】:

【参考方案1】:

以我(不是这样)的拙见,你不应该在没有很好的理由的情况下修正方向并原谅我,但“我很懒”不是一个很好的理由;)

您有多种选择。

在不做任何事情的情况下,设置 Imageview 的 scaleType 属性将使您能够加载图像,并以完整的比例缩放。然后,您可以覆盖 onConfigurationChanged 回调并将 scaleType 设置为对您的应用有意义的值,具体取决于图像方向(只需检查宽度>高度)。

或者,您可以测量应用的比例,然后在查看图像时将方向设置为纵向或横向,然后在用户关闭图像查看活动时切换到当前设备方向。

您的用户会更开心,您最终会得到更优雅、更受支持和更令人满意的代码。

我的经验告诉我,不花时间预先做这些事情最终会导致更多的工作和/或痛苦。

帮自己一个忙(和您的用户),做对了...

【讨论】:

以上是关于Android自动旋转对话框但不是背景图像的主要内容,如果未能解决你的问题,请参考以下文章

如何知道一个对话框是不是在 Android 中被关闭?

模糊Android中的对话框

使用 AsyncTask 进行方形图像旋转的自定义进度对话框

android自定义对话框背景

显示白色背景的对话,当使用与透明度的png作为背景时

旋转 Android ImageView 及其背景