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

  • 相关阅读:
    H3C Comware V5、V7平台交换机分类
    如何从症状上区别风寒感冒与过敏性鼻炎
    rdp3389mstsc使用剪贴板重定向通过远程桌面服务或终端服务会话复制大于 2 GB 的文件 (复制) 会以静默方式失败
    小区光纤PON接入组网方式与案例
    Esxi6.7网络trunk端口设置和vlan端口设置访问
    安装VCenter 6.7的系统要求
    win10自定义时间服务器
    fabric基础设施管理-(四)多机-动态新增组织节点
    fabric基础设施管理-(三)单机-动态新增组织节点
    fabric基础设施管理-(二)基础网络搭建
  • 原文地址:https://www.cnblogs.com/victor-ma/p/4380386.html
Copyright © 2011-2022 走看看