标题栏高度_deepin修改标题栏高度 - CSDN
精华内容
参与话题
  • 获取标题栏高度

    2014-10-03 23:01:25
    获取标题栏高度

                                         获取标题栏的高度

         有些时候我们在设置坐标的时候需要知道标题栏的高度,这样子我们就可以计算出我们的view的坐标算法。

    下面我就简单的介绍一下如何计算出标题栏的高度:

    首先decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。 



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


      得到了全部的高度之后我们需到得到不包括标题栏的那部分高度,这样子我们就可以通过计算得到我们想要的标题栏高度了。

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


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


    展开全文
  • 1.获取状态栏高度:  decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。  于是,...

     1.获取状态栏高度:
      decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。
      于是,我们就可以算出状态栏的高度了。
    java代码:
    Rect frame = new Rect();
    getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
    int statusBarHeight = frame.top;

         2.获取标题栏高度:
      getWindow().findViewById(Window.ID_ANDROID_CONTENT)这个方法获取到的view就是程序不包括标题栏的部分,然后就可以知道标题栏的高度了。
    java代码:
    int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();

    //statusBarHeight是上面所求的状态栏的高度
    int titleBarHeight = contentTop - statusBarHeight

    展开全文
  • 修改标题栏高度

    千次阅读 2013-02-18 15:16:08
    修改标题栏高度   01 LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" 02  android:orientation="vertical" 03 ...

    修改标题栏的高度

     
    01 <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
    02     android:orientation="vertical"
    03     android:fitsSystemWindows="true">
    04     <FrameLayoutandroid:id="@android:id/title_container" 
    05         android:layout_width="match_parent" 
    06         android:layout_height="?android:attr/windowTitleSize"
    07         style="?android:attr/windowTitleBackgroundStyle">
    08     </FrameLayout>
    09     <FrameLayoutandroid:id="@android:id/content"
    10         android:layout_width="match_parent" 
    11         android:layout_height="0dip"
    12         android:layout_weight="1"
    13         android:foregroundGravity="fill_horizontal|top"
    14         android:foreground="?android:attr/windowContentOverlay"/>
    15 </LinearLayout>


    通过以上文档我们可知,title_container(标题栏)的高度由attr--windowTitleSize决定。所以改变windowTitleSize 可以改变高度。如下代码: 
     
    01 <?xmlversion="1.0"encoding="utf-8"?>
    02 <resourcesxmlns:android="http://schemas.android.com/apk/res/android">
    03 <stylename="CustomWindowTitleBackground">
    04        <itemname="android:background">#565656</item>
    05 </style>
    06 <stylename="test"parent="android:Theme">
    07      <itemname="android:windowTitleSize">50dp</item> //改变标题栏的高度
    08      <itemname="android:textSize">10dp</item> //改变文件大小
    09      <itemname="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>
    10 </style>
    11 </resources>

     

     
    1 <applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
    2     <activityandroid:name=".TitleButton"
    3               android:label="@string/app_name"
    4               android:theme="@style/test">

    android:theme ="@style/test"改变了主题,这样因为test中用到了<item name="android:textSize">10dp</item> 所以默认所有的文字都是这么大小,除非在相应View中,textSize 重新被修改,或者所在Activity的主题中重新设定此值。




    很多网友发现自己Android程序的标题栏TitleBar区域很单调,如果想个性化一些可以通过下面的方法来为自己软件的标题定制一个layout布局文件,比如浏览器的标题栏,它包含了网站的Favicon,自定义的进度条,和不确定的进度指示等等,实现的方法自己控制吧。下面代码在onCreate中使用,同时顺序不要改变,否则将无法生效:
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);   
    setContentView(R.layout.main);   
    //软件activity的布局
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);  //titlebar为自己标题栏的布局
    这样虽然可以在一定程度上定制标题栏, 不过, 这里无法改变标题栏的高度和背景(背景设置之后会在两端有两个非常难看的边框).  据说, 原因是android 固有的. 
    这里有修改方法:
    原理是这样的. 直接像上述代码那样添加title仅仅是把一个子界面添加到原有的title上的, 并没有改变原来的属性, 比如 标题栏大小, 标题栏背景. 这些需要在theme 主题里面定义. 
    因此先定义一个style, 若修改背景请修改android:windowTitleBackgroundStyle
    若修改标题栏高度,请修改android:windowTitleSize
    例子:
    <?xml version="1.0" encoding="utf-8"?>
    <resources xmlns:android="http://schemas.android.com/apk/res/android">


    <style name="CustomWindowTitleBackground">
           
    <item name="android:background">#565656</item>
    </style>


    <style name="test" parent="android:Theme">
         
    <item name="android:windowTitleSize">50dp</item>
         
    <item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>
    </style>
    </resources>
    在程序的android manifest.xml中对应activity中添加属性  android:theme = "@style/test"  就可以了
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package
    ="com.guardian"
          android:versionCode
    ="1"
          android:versionName
    ="1.0">
        
    <application android:icon="@drawable/icon" android:label="@string/app_name" >
            
    <activity android:name=".Guardian"
                      android:label
    ="@string/app_name"
                      android:theme 
    = "@style/test"   //就在这里
                      
    >
                
    <intent-filter>
                    
    <action android:name="android.intent.action.MAIN" />
                    
    <category android:name="android.intent.category.LAUNCHER" />
                
    </intent-filter>
            
    </activity>

        
    </application>
        
    <uses-sdk android:minSdkVersion="4" />

    </manifest> 
    之后借助于设置自定义的标题栏xml文件,就可以自定义标题栏布局了

    展开全文
  • 在Android中Window对象通常由PhoneWindow来实现,PhoneWindow将一个DecorView设置为整改应用窗口的根Viewfinal View decorView = getActivity().getWindow().getDecorView();设置了系统UI可见性改变监听器 ...
    <span style="font-size:18px;">在Android中Window对象通常由PhoneWindow来实现,PhoneWindow将一个DecorView设置为整改应用窗口的根View</span>
    <span style="font-size:18px;">final View decorView = getActivity().getWindow().getDecorView();</span>
    <span style="font-size:18px;">设置了系统UI可见性改变监听器
    decorView.setOnSystemUiVisibilityChangeListener(
    <span style="white-space:pre">	</span>new View.OnSystemUiVisibilityChangeListener() {
    <span style="white-space:pre">	</span>@Override
            <span style="white-space:pre">	</span>public void onSystemUiVisibilityChange(int i) {
                    <span style="white-space:pre">	</span>int height = decorView.getHeight();
                            Log.i(TAG, "Current height: " + height);
                    }
    });</span>
    <span style="font-size:18px;"></span><pre name="code" class="java"><span style="font-size:18px;">//</span><span style="font-family: Arial, Helvetica, sans-serif;">得到当前的UI标记</span>
    int uiOptions = getActivity().getWindow().getDecorView().getSystemUiVisibility();int newUiOptions = uiOptions;
    
    
    <span style="font-size:18px;"></span><pre name="code" class="java"><span style="font-size:18px;">//</span><span style="font-family: Arial, Helvetica, sans-serif;">判断是否为沉浸模式</span>
    boolean isImmersiveModeEnabled = ((uiOptions | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) == uiOptions);// Immersive mode: Backward compatible to KitKat (API 19).// Note that this flag doesn't do anything by itself, it only augments the behavior// of HIDE_NAVIGATION and FLAG_FULLSCREEN. For the purposes of this sample// all three flags are being toggled together.// This sample uses the "sticky" form of immersive mode, which will let the user swipe// the bars back in again, but will automatically make them disappear a few seconds later.
    
    
    <span style="font-size:18px;">newUiOptions ^= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
    newUiOptions ^= View.SYSTEM_UI_FLAG_FULLSCREEN;
    newUiOptions ^= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;</span>
    <span style="font-size:18px;">getActivity().getWindow().getDecorView().setSystemUiVisibility(newUiOptions);
    </span>
    <span style="font-size:18px;"></span><pre name="code" class="java">//得到的容器包含状态栏和decor_content_parent
    ViewGroup group = (ViewGroup) getWindow().getDecorView();
    <pre name="code" class="java"><span style="font-size:18px;">//顶部状态栏</span>
    View statubar = group.getChildAt(1);if (statubar != null) { int statuHeight = statubar.getMeasuredHeight(); Log.i(TAG, "statuHeight height: " + statuHeight);}
    
    
    <pre name="code" class="java"><span style="font-size:18px;">//id为content的内容view</span>
    ViewGroup child = (ViewGroup) group.getChildAt(0);View contentView = child.getChildAt(0);if (contentView != null) { int contentHeight = contentView.getMeasuredHeight(); Log.i(TAG, "contentHeight height: " + contentHeight);}
    
    
    <pre name="code" class="java"><span style="font-size:18px;">//actionbar</span>
    View titleView = child.getChildAt(1);if (titleView != null) { int titleHeight = titleView.getMeasuredHeight(); Log.i(TAG, "titleView height: " + titleHeight);}
    
    

    
    

    展开全文
  • 安卓标题栏和底部导航高度

    千次阅读 2018-03-06 13:48:24
    网上多数都是测算的代码,有时候我们并不需要测算,直接在xml里设置即可。标题栏高度为:48dp底部导航高度为:56dp在xml里直接设置就行了,温馨提示:别用px。...
  • 安卓默认的标题栏高度相对于现在主流的APP来说实在是高了些,想把自己的入门APP做的精美一些,参考了腾讯的TIM,觉得他的标题栏非常的美观协调,想问问各位大神,TIM的标题栏的高度值是多少? 标题栏高度值是这个...
  • android 标题栏高度

    千次阅读 2012-10-25 11:27:47
    240x320的高度为20px 320x480的高度为25px 480x800的高度为38px   不知道为什么我写的测试...以下是我写的获取标题栏高度的代码: public void onCreate(Bundle savedInstanceState) { super.onCreate(saved
  • 猜想:我们使用自定义标题栏好像需要知道状态栏的高度,我看到网上很多人想要自定义标题栏,却老是去找怎么获取状态栏的高度 解惑:其实并不用获取状态栏的高度,你想AppBar也是状态栏,它也需要知道状态栏的...
  • 微信小程序顶部导航栏自定义,根据不同手机自适应距离状态栏高度 一、微信小程序顶部导航栏自定义 "navigationStyle": "custom" app.json "window": { "backgroundTextStyle": "dark", ...
  • 简单说明一下(上图Activity采用默认Style,状态栏和标题栏都会显示):最大的草绿色区域是屏幕界面,红色次大区域我们称之为“应用界面区域”,最小紫色的...下边给出4中状态栏高度获取和2种标题栏获取高度的方法——
  • Android如何设置标题栏高度

    万次阅读 2012-11-25 18:17:14
    新建一个styles.xml 1 xmlversion="1.0" encoding="utf-8"?> 2 resources> ... style name="titlebarstyle"parent="Android:Theme">
  • dataGridView_EquipSelect.RowTemplate.Height = 40;...//改变标题高度; dataGridView_EquipSelect.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing; dataGridView_Equip
  • Rect rect = new Rect(); getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);///取得整个视图部分,注意,如果你要设置标题样式...////状态高度,所以rect.height,rect.width分别是系统的高度的宽度
  • 在自定义标题栏时,虽然可以自由定义标题栏内容了,但我们通常又会面临着状态栏也一起塌陷的情况,在普通的手机上我们通过官方提供的css变量–status-bar-height来设置,下面是官方给出的解决办法 在注意里也提到了...
  • Deepin 15.11已经发布一段时间了,前段时间折腾了一下,把我的Ubuntu换成了Deepin(有兴趣可以看看我的另一篇:Deepin15.11初体验及问题解决),总体感觉非常好。 依我个人习惯,目前有两点不是很能接受: ...
  • flutter获取状态栏高度

    万次阅读 2018-09-11 17:58:12
    获取状态栏高度 import 'dart:ui'; MediaQueryData.fromWindow(window).padding.top 系统默认的appBar等高度 位于Dart Packages/flutter/src/material/constans.dart /// The height of the toolbar ...
  • 通过调用系统函数 GetSystemMetrics(__in int nIndex),函数只有一个参数,75个可选参数值,设置不同的...此处介绍传递相应的参数获取标题栏的信息, GetSystemMetrics(SM_CXFRAME) 和 GetSystemMetrics(SM_CYFR
  • OnNcCalcSize改变标题栏等的高度  在创建窗口时,当收到 WM_NCCALCSIZE 消息时才指定客户区。不管什么时候,只要 Windows 想知道窗口客户区的大小,它便会发送这个消息。 如果改写主窗口的 WM_NCCALCSIZE/...
  • 状态栏高度:20px,导航栏高度:40px,代码如下: [objc] view plain copy // (statusbar)  CGRect rectOfStatusbar = [[UIApplication sharedApplication] statusBarFrame];  NSLog(@"statusbar ...
  • 转载自: http://www.xuebuyuan.com/2038922.html
1 2 3 4 5 ... 20
收藏数 49,154
精华内容 19,661
关键字:

标题栏高度