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调用之后才有效。

  • 相关阅读:
    CF763C Timofey and Remoduling
    CF762E Radio Stations
    CF762D Maximum Path
    CF763B Timofey and Rectangles
    URAL1696 Salary for Robots
    uva10884 Persephone
    LA4273 Post Offices
    SCU3037 Painting the Balls
    poj3375 Network Connection
    Golang zip压缩文件读写操作
  • 原文地址:https://www.cnblogs.com/victor-ma/p/4380386.html
Copyright © 2011-2022 走看看