屏幕的显示方向有横排和竖排两种:
下面的代码可以为我们自动的控制长宽。
- /***
- * 根据实际的屏幕长宽,自动的进行竖排或者横排
- */
- public void autoChange() {
- DisplayMetrics displayMetrics = new DisplayMetrics();
- getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
- int height = metrics.heightPixels;
- int width = metrics.widthPixels;
- // getRequestedOrientation方法可以获取当前activity的排列模式
- int requestOritation = getRequestedOrientation();
- if (requestOritation == -1) {
- Toast.makeText(this,
- "当前activity中没有设置screenOrientation属性,根本不能执行翻转操作",
- Toast.LENGTH_LONG).show();
- }
- else{
- /**
- * ActivityInfo.SCREEN_ORIENTATION_PORTRAIT代表竖排
- * (另一种形式为在Manifest.xml中为activity配置screenOrientation="portrait")
- * ActivityInfo则是一个和我们在Manifest.xml中为activity配置的信息相关的类
- */
- if(requestOritation==ActivityInfo.SCREEN_ORIENTATION_PORTRAIT&&width>height){
- // setRequestedOrientation 可以重新设置
- setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
- }
- // 下边的代码省略了
- }
- }
----------------------------------------------------------------------------------
横排:ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
竖排: ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
获取当前的排列模式:可以通过在activity中调用getRequestedOrientation()方法获取,如果我们再AndroidManifest.xml中没有为该activity设置screenOrientation属性来初始化排列模式,那么在编程模式下,无论我们怎么排列,都是不起作用的。
改变当前的排列模式:setRequestedOrientation()方法。