我为手机和银河标签制作了一个应用程序。我只想在手机上成为纵向模式,在标签中也是纵向和横向模式。
到目前为止,我得到了这个代码片段:
public void onCreate(Bundle savedInstanceState)
{
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width = dm.widthPixels;
int height = dm.heightPixels;
if(!(width>=800 && height>=1280))
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
}
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayout);
//... more code below
所以我只是检查屏幕尺寸,如果它是平板电脑的 800x1280,我什么也不做,并且方向更改处于活动状态。如果不是 800x1280,我会这样做:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
我认为它会正常工作,但对于一些随机错误,它不是每次都工作.. 可以说大约十次,方向只是在手机上变为横向到一秒钟,然后又变为纵向。所以有点错误。
这是另一种更好的方法吗?