У меня есть небольшое требование в моем проекте Android.Android Orientation Lock
- Мое приложение должно работать Пейзаж в таблетки и Портрет в Телефон
- Есть ли способ, чтобы зафиксировать ориентацию в Заявке, вместо того, чтобы в деятельности.
У меня есть небольшое требование в моем проекте Android.Android Orientation Lock
Вы можете проверить размер экрана следующий тис кусок кода:
public static boolean isTablet(Context context) {
return (context.getResources().getConfiguration().screenLayout
& Configuration.SCREENLAYOUT_SIZE_MASK)
>= Configuration.SCREENLAYOUT_SIZE_LARGE;
}
, чем установленная ориентация:
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Нужно ли устанавливать запрошенную ориентацию в каждом действии ??? – Suresh
да) это точка разного вида деятельности - разная конфигурация. –
Спасибо. Нужно ли вообще обращаться в глобальном масштабе (т. Е. Вместо того, чтобы устанавливать ориентацию в каждом действии, любой другой вок, чтобы установить для приложения?) – Suresh
Чтобы избежать вычисления для размера экрана вы можете использовать вместо этого Boolean в РАЗМЕРЫ как
в values-sw600dp/bools.xml -> <bool name="isTablet">true</bool>
values-sw720dp/bools.xml -> <bool name="isTablet">true</bool>
и простой values/bools -> <bool name="isTablet">false</bool>
Затем в деятельности вы можете просто набор
boolean isTablet = getResources().getBoolean(R.bool.isTablet);
if (isTablet) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
super.onCreate(savedInstanceState);
Примечание это будет работать только для API level 3.2
и выше.
if (getResources().getDisplayMetrics().widthPixels > getResources().getDisplayMetrics().heightPixels)
{
bLandscape = true;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//initViews_Land();
}
else
{
bLandscape = false;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//initViews_Port();
}
Один из способов использования этого кода - это ваше действие.
Другой способ - создать два разных проекта для телефона и планшета. Загрузите два APK (планшет APK должен иметь более высокий номер версии) и активируйте оба из них в расширенном режиме. Play Маркета будет управлять автоматически в зависимости от устройства, оно устанавливается
Телефон манифеста: Все мероприятия должны иметь андроида: screenOrientation = "sensorPortrait"
...
<compatible-screens>
<screen
android:screenDensity="ldpi"
android:screenSize="small" />
<screen
android:screenDensity="mdpi"
android:screenSize="small" />
<screen
android:screenDensity="mdpi"
android:screenSize="normal" />
<screen
android:screenDensity="hdpi"
android:screenSize="normal" />
<screen
android:screenDensity="mdpi"
android:screenSize="large" />
<screen
android:screenDensity="hdpi"
android:screenSize="large" />
</compatible-screens>
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true"
android:xlargeScreens="false" />
...
Tablet манифеста: Все мероприятия должны имеют андроид: screenOrientation = "sensorLandscape"
...
<compatible-screens>
<screen
android:screenDensity="xhdpi"
android:screenSize="large" />
<screen
android:screenDensity="xhdpi"
android:screenSize="xlarge" />
<screen
android:screenDensity="hdpi"
android:screenSize="xlarge" />
<screen
android:screenDensity="mdpi"
android:screenSize="xlarge" />
</compatible-screens>
<supports-screens
android:anyDensity="true"
android:largeScreens="false"
android:normalScreens="false"
android:resizeable="false"
android:smallScreens="false"
android:xlargeScreens="true" />
...
надеюсь, что это может быть hel p
андроид: экранОриентация = "портрет" –
@RohitGoswami Какова будет ориентация в планшете, если мы заблокируем ориентационный портрет – Suresh
Вы можете найти размер вашего устройства с помощью показателей отображения, а затем вы можете установить ориентацию для планшета и телефона –