我正在开发一个家庭自动化应用程序,用户可以上传图像(例如平面图),点击房间并执行不同的操作,例如控制照明等。我找出用户点击的位置通过使用用户也使用颜色映射创建的第二个图像。我现在已经设置它,因此图像必须与设备具有相同的分辨率,因此我不必处理缩放。我还禁用自动旋转,因此当设备旋转到纵向时,他们不必担心景观照片会被碾碎。换句话说,我懒得处理它。这种方法的问题在于,出现的任何对话框(在横向观看屏幕时)都以纵向模式而不是横向模式出现。所以我的问题是,有没有办法让我在屏幕上显示一个不遵循自动旋转的图像,但有自动旋转的对话框?或者对我来说是正确的解决方案来处理图像的自动旋转? 我想我可以做的一件事就是将旋转固定到横向模式,因为大多数平面图都会适应横向,但是如果有人想拍摄肖像图像呢?
答案 0 :(得分:0)
在我(不是那么)谦卑的意见中,你不应该在没有充分理由的情况下修改方向并原谅我,但“我很懒”并不是一个好理由;)
您有几种选择。
如果不执行任何操作,设置Imageview的scaleType属性将使您能够加载图像,并使用完整比例进行缩放。然后,您可以覆盖onConfgurationChanged回调,并将scaleType设置为对您的应用有意义的回调,具体取决于图像方向(只需检查宽度>高度)。
或者,您可以测量应用的比例,然后在查看图像时将方向设置为纵向或横向,然后在用户关闭图像查看活动时切换到当前设备方向。
您的用户会更快乐,您将获得更优雅,更可支持且更令人满意的代码。
我的经验告诉我,没有花时间在前面做这种事情最终会导致更多的工作和/或痛苦。
帮自己一个忙(和你的用户),做得对......