2011-09-11 79 views
4

当屏幕小于(例如)480px时,任何人都知道如何禁用我的Android应用中的屏幕旋转? 我正在构建应用程序,使用phonegap女巫将针对平板设备,但它也可以在智能手机上运行它。不幸的是应用程序时以横向显示的应用程序只显示正常......Android:屏幕小于x时禁用屏幕旋转

+0

我做到了,但我必须等待8个小时(6个以上)来回答我的问题(我有<100代表...) – PsychoX

回答

4

也许一个“如果”控制

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

onCreate函数?

4

干了! :)

这里是如何(言自明):

int width; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    super.loadUrl("file:///android_asset/www/index.html"); 
    Display display = getWindowManager().getDefaultDisplay(); 
    width = display.getWidth(); 
    if(width <= 480) { 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
    } 

} 


@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    if(width <= 480) { 
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
    } 
}' 

和几个进口:

import android.content.pm.ActivityInfo; 
import android.content.res.Configuration; 
import android.view.Display;' 
0

结合@Howard霍德森和在此线程How to determine device screen size category (small, normal, large, xlarge) using code?

我使用该解决方案此代码:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    disableLandscapeInSmallDevices(); 
} 

private void disableLandscapeInSmallDevices() { 
    if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL) { 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
    } 
}