Android:在应用程序处于纵向时在横向显示视图

问题描述:

我有一个Android应用程序始终处于纵向模式。不过,我希望以全屏横向模式显示视图,而无需横向模式下的活动或应用程序。如何在应用程序处于纵向模式时强制处于横向模式的视图的xml?

我不想在我的代码中旋转,因为我想保持简单并在xml中定义布局。也有不同的屏幕分辨率,它可能无法正常工作并改变我的布局。但如果这是唯一的解决方案,我该怎么做?Android:在应用程序处于纵向时在横向显示视图

+0

纵向显示全屏幕横向视图(例如,纵向显示缩略图,然后显示横向全景图像)? – FunkTheMonk

+0

不,我使用OrientationEventListener检测到风景的变化,然后从底部向上动画滑动以显示全屏视图。 – ffleandro

+0

你不能在横向上制作XML ..因为你想要像横向上的肖像和视图顶部的活动标题栏..然后在XML中使视图,因为它看起来像在景观和显示它.. – MKJParekh

我不认为你可以通过XML来做到这一点。事实上,我不认为有一个简单的解决方案。如果你有一些非常简单的东西,你可以重写onDraw方法,rotate the Canvas,然后绘制视图。如果你有更复杂的行为,比如滚动,那么它最终会做很多工作。

为什么要在横向模式下填充屏幕而不使横向显示活动?这背后的推理是什么?

+0

我的活动是带有3个选项卡的TabActivity。我想要的行为是,当用户将屏幕倾斜到风景时,我想显示记分卡视图从底部向上滑动的动画(在这种情况下,因为它处于风景中,它必须从左到右),而当他将其放回肖像,然后向下滑动。这是他会很快做的事情,只是为了检查分数,我不希望状态栏改变为风景,也不想重新创建我的整个tabactivity。我只想展示一下它的风景,但在风景中。这很难做到吗? – ffleandro

+0

是的,不幸的是,据我所知,除非您的记分卡视图非常简单或自定义绘制,否则这是相当难做的事情。 – kabuko

+0

根据您的建议,我最终创建了一个新的横向活动,该活动在我水平倾斜设备时开始。并不是我想要做的事情,但足够合理。 – ffleandro

android:screenOrientation="landscape"添加到AndroidManifest.xml中的活动。例如:

 <activity android:name=".SomeActivity" 
       android:label="@string/app_name" 
       android:screenOrientation="landscape"> 
+1

阅读我的问题。这迫使我的活动和应用程序处于横向模式。我只想把景观放在一​​个特定的布局视图中。 – ffleandro

+0

@screamingnoises,它只会将活动放入横向,而不是您的应用。 – LuxuryMode

+0

好吧,如果它将状态栏更改为横向,则该应用程序处于该活动的横向状态。我不想那样。我也不想让这个活动重现景观中的一切。我只是希望这个观点具体在景观中。我不确定是否有可能,明天我会尝试考虑更好的解决方案。 – ffleandro