zoukankan      html  css  js  c++  java
  • [安卓]Android窗口、视图、布局

    1、窗口全屏的两种方法:

    转自:http://blog.sina.com.cn/s/blog_4c451e0e010133ab.html

    设置全屏包括两个部分: 窗口全屏和Activity全屏。窗口全屏是指隐藏系统顶部用来显示时间、电量、信号等信息的标题栏;Activity全屏是指隐藏程序的标题栏。我们可以通过修改AndroidManifest.xml文件来实现。

    1.1、窗口全屏fullscreen.java代码如下:

    package wzhnsc.test.style;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Window;
    import android.view.WindowManager;
    public class fullscreen extends Activity {
      
       @Override
       public void onCreate(Bundle savedInstanceState) {
           super.onCreate(savedInstanceState);
          
           //不显示程序的标题栏
           requestWindowFeature( Window.FEATURE_NO_TITLE );
          
           //不显示系统的标题栏          
            getWindow().setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN,
                                 WindowManager.LayoutParams.FLAG_FULLSCREEN );
          
           setContentView( R.layout.main );
       }
    }
    View Code

    1.2、修改 AndroidManifest.xml 我们可以修改activity或application的属性值来实现。具体可以根据自己的情况来设置,两者区别如下:

    1)activity: 只针对当前的Activity全屏。
    2)application:所有的Activity都会全屏。
    AndroidManifest.xml 内容如下:
    <?xml version=”1.0″ encoding=”utf-8″?>
    <manifest 
        xmlns:android=”http://schemas.android.com/apk/res/android”
       package=”wzhnsc.test.style”
       android:versionCode=”1″
       android:versionName=”1.0″>
       <application 
            android:icon=”@drawable/icon”
           android:label=”@string/app_name”                 
            android:theme=”@android:style/Theme.NoTitleBar.Fullscreen”>
           <activity android:name=”.fullscreen”
               android:label=”@string/app_name”
               android:theme=”@android:style/Theme.NoTitleBar.Fullscreen”>
               <intent-filter>
                   <action android:name=”android.intent.action.MAIN”/>
                   <category android:name=”android.intent.category.LAUNCHER”/>
               </intent-filter>
           </activity>
        </application>
       <uses-sdk android:minSdkVersion=”1″/>
    </manifest>

    2、android 状态栏、标题栏、屏幕高度:

    2.1、获取状态栏高度:

    decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。 于是,我们就可以算出状态栏的高度了。

     java code:

    Rect frame = new Rect();
    getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
    int statusBarHeight = frame.top;

    2.2、获取标题栏高度:

    getWindow().findViewById(Window.ID_ANDROID_CONTENT)这个方法获取到的view就是程序不包括标题栏的部分,然后就可以知道标题栏的高度了。

    java code:

    int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();
    //statusBarHeight是上面所求的状态栏的高度
    int titleBarHeight = contentTop - statusBarHeight

    2.3、获取屏幕高度:

      方法 1.
     java code:

    WindowManager windowManager = getWindowManager();
    Display display = windowManager.getDefaultDisplay();
    screenWidth = display.getWidth();
    screenHeight = display.getHeight();


      方法 2.
     java code:

    DisplayMetrics dm = new DisplayMetrics();     
    this.getWindowManager().getDefaultDisplay().getMetrics(dm);//this指当前activity     
    screenWidth =dm.widthPixels;     
    screenHeight =dm.heightPixels;  


    以上两种方法在屏幕未显示的时候,还是处于0的状态,即要在setContentView调用之后才有效。

  • 相关阅读:
    页面上有10个多选框,实现三个按钮(重置、反选、全选)功能
    鼠标点哪 哪出15*15的圆型div
    es写简单的留言板
    面试准备(3)事件循环
    面试准备(2)async+await的使用与原理
    面试准备(1)重排与重绘和验证码
    vue项目修改el-input样式
    echarts画雷达图详解
    决心
    国庆中秋
  • 原文地址:https://www.cnblogs.com/victor-ma/p/4380386.html
Copyright © 2011-2022 走看看