如何解决方向问题?

时间:2011-12-14 08:08:20

标签: android android-orientation

当我将屏幕从纵向模式更改为陆地景观模式时,会自动从我的应用程序中显示出来(同样也可以从横向到纵向),任何人都可以告诉我这个解决方案..

这是我的方向代码,

if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
            Toast.makeText(MyAlphabetsActivity.this, "ORIENTATION_PORTRAIT",
                    Toast.LENGTH_SHORT).show();
            setContentView(R.layout.portrait_main);
            System.out.println("int-----1--");
        } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
            setContentView(R.layout.landscape_main);
            Toast.makeText(MyAlphabetsActivity.this, "ORIENTATION_LANDSCAPE",
                    Toast.LENGTH_SHORT).show();
            System.out.println("int-----2--");
        }

将肖像更改为横向控制时输入其他if()并显示Toast按摩.......

4 个答案:

答案 0 :(得分:1)

您错误地处理了方向更改。您应该阅读Handling Runtime Changes指南。也请考虑this

答案 1 :(得分:1)

如果您在portrait模式和landscape模式下具有相同的布局,那么最好通过添加

来停止在轮换更改时重新创建活动
android:configChanges="orientation|keyboardHidden"
文件中活动代码中的

属性。

答案 2 :(得分:0)

您有两种选择:要么以单一模式阻止应用程序:纵向或横向。 第二个选项是创建两个布局:layout-land和layout-portrait 拥有两种不同的布局是不正确的。它只是不起作用。 您必须拥有res文件夹中的文件夹。一个文件夹layout-land,你有main.xml 还有一个文件夹布局 - 肖像,其中有一个名为main.xml的文件,处理纵向模式。

答案 3 :(得分:0)

int o = getBaseContext().getResources().getConfiguration().orientation;
    if(o==1)//Portrait
    {
             Log.i("Portrait","=====");

    }
    else if(o==2)//Landscape
    {
             Log.i("Landscape","=====");
    }