Android 手机人像和标签人像的设计相同,但标签横向的设计不同

Android 手机人像和标签人像的设计相同,但标签横向的设计不同,android,android-layout,android-activity,android-orientation,Android,Android Layout,Android Activity,Android Orientation,在我的应用程序中,我有两种不同的设计,分别用于纵向模式和横向模式,仅用于制表符7.5和格栅。我已经分别设计了布局 res/layout-sw720dp-land res/layout res/layout-sw720dp-port 对于所有布局,我将使用相同的文件名。例如,sw720dp将具有detail_item.xml意味着res/layout-sw720dp-port&res/layout将具有与detail_item.xml相同的名称。但它们之间的设计会有所不同 如果一个标签有7.5

在我的应用程序中,我有两种不同的设计,分别用于纵向模式和横向模式,仅用于制表符7.5和格栅。我已经分别设计了布局

res/layout-sw720dp-land 
res/layout
res/layout-sw720dp-port
对于所有布局,我将使用相同的文件名。例如,sw720dp将具有detail_item.xml意味着res/layout-sw720dp-port&res/layout将具有与detail_item.xml相同的名称。但它们之间的设计会有所不同

如果一个标签有7.5或光栅,那么它将有横向模式,在所有情况下,它将有纵向模式。用于检查我是否正在使用DeviceConnected函数

public static void DeviceConnected(final Activity activity) {
    SharedPreferences mPrefs;
    SharedPreferences.Editor mEditor;
    mPrefs = activity.getSharedPreferences("Database_Value",
            Context.MODE_WORLD_WRITEABLE);
    mEditor = mPrefs.edit();
    double screenInch = 7.5;

    String ua = new WebView(activity).getSettings().getUserAgentString();
    if (ua.contains("Mobile")) {
        activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        // mEditor.putString("Device_Mode", "TAB-LANDSCAPE");
        mEditor.putString("Device_Mode", "Phone");
        mEditor.commit();
    } else {
        DisplayMetrics dm = new DisplayMetrics();
        activity.getWindowManager().getDefaultDisplay().getMetrics(dm);
        int width = dm.widthPixels;
        int height = dm.heightPixels;
        int dens = dm.densityDpi;
        double wi = (double) width / (double) dens;
        double hi = (double) height / (double) dens;
        double x = Math.pow(wi, 2);
        double y = Math.pow(hi, 2);
        double screenInches = Math.sqrt(x + y);
        Log.i("scrren", "" + screenInches);
        // Toast.makeText(activity, "" + screenInch, 1000).show();
        if (screenInches >= screenInch) {
            activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
            mEditor.putString("Device_Mode", "TAB-LANDSCAPE");
            mEditor.commit();
        } else {
            activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            // mEditor.putString("Device_Mode", "TAB-LANDSCAPE");
            mEditor.putString("Device_Mode", "TAB-PORTRAIT");
            mEditor.commit();
        }
    }
在开始任何活动之前,我将称之为“检查共享首选项的值”,然后我将设置活动的方向

String Device_Mode = mPrefs.getString("Device_Mode", "");
    // Set default orientation.
    if (Device_Mode.equals("Phone")) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
    } else if (Device_Mode.equals("TAB-PORTRAIT")) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
    } else if (Device_Mode.equals("TAB-LANDSCAPE")) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
    } else {
        finish();
    } 
设置方向后,我将进入setlayout并声明和初始化视图。如果我在横向上拿着标签,这很好用。如果在同一时间,如果我正在旋转选项卡以移动它,那么布局将加载纵向布局,而不是横向布局。如何解决这个问题