蜂社吧 关注:306贴子:17,410

【教程】一些有关于status bar修改的教程--

只看楼主收藏回复

大部分原创且已亲测有限,纯手打'禁止插楼,
一个楼层表示一个代码xml


IP属地:广东来自Android客户端1楼2013-11-29 09:55回复
    status_bar_latest_event.XML这里有关于通知栏的通知条目的修改,直接上原文了,
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="65.0sp"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <com.android.systemui.statusbar.LatestItemView android:id="@id/content" android:background="@*android:drawable/status_bar_item_background" android:paddingRight="6.0sp" android:focusable="true" android:clickable="true" android:layout_width="fill_parent" android:layout_height="64.0sp" />
    <View android:background="@drawable/divider_horizontal_light_opaque" android:layout_width="fill_parent" android:layout_height="wrap_content" />
    </LinearLayout>
    1.通知条目高度的修改:上面的65.0sp和64.0sp就是高度
    2.通知条目下面一般都有一条白线,
    透明方法:
    ①drawable-mdpi文件夹内 divider_horizontal_light_opaque.9.png换成透明的
    ⑥上面的 @drawable/divider_horizontal_light_opaque改为#00000000
    3.通知栏条目由框架决定,若要想独立于systemUI.apk,将上面的 "@*android:drawable/status_bar_item_background"
    改为 "@drawable/item_bg"
    再在drawable-mdpi放入一张图片item_bg.png
    这个按下背景时候没有效果,我还没有弄,你想弄的话,反编译字母的分页下拉这个代码看一下就够了,…


    IP属地:广东来自Android客户端2楼2013-11-29 09:57
    收起回复
      status_bar_icon.xml这里有关于状态栏高度和图标的修改:
      状态栏高度和状态栏图标大小修改:
      这些在框架里面改,反编译框架找到values/dimens.xml
      状态栏高度:status_bar_height
      状态栏图标大小:status_bar_icon_size
      …………………………………………………………………………………………………………
      改完了这些,状态栏还得改下,否则有些小影响,在layout/status_bar_icon.xml 具体不说,这个一看就知道,里面有两个25.0dip,改成相应的就够了


      IP属地:广东来自Android客户端3楼2013-11-29 09:58
      回复
        status_bar_tracking.xml
        修改下拉栏背景:将下面的#21212121改为 @drawable/status_bar_background,
        图片就变为status_bar_background.png
        …………………………………………………………………………………………………………
        <?xml version="1.0" encoding="utf-8"?>
        <com.android.systemui.statusbar.TrackingView android:orientation="vertical" android:paddingLeft="0.0px" android:paddingRight="0.0px" android:paddingBottom="0.0px" android:focusable="true" android:visibility="gone" android:descendantFocusability="afterDescendants"
        xmlns:android="http://schemas.android.com/apk/res/android">
        <View android:background="#21212121" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0" />
        <com.android.systemui.statusbar.CloseDragHandle android:orientation="vertical" android:id="@id/close" android:layout_width="fill_parent" android:layout_height="wrap_content">
        <ImageView android:layout_gravity="bottom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/status_bar_close_on" android:scaleType="fitXY" />
        </com.android.systemui.statusbar.CloseDragHandle>
        </com.android.systemui.statusbar.TrackingView>


        IP属地:广东来自Android客户端4楼2013-11-29 09:59
        回复
          1.状态栏显示运营商
          找到这一段 <LinearLayout android:orientation="horizontal" android:id="@id/icons" android:layout_width="fill_parent" android:layout_height="fill_parent">
          加入
          <com.android.systemui.statusbar.CarrierLabel android:textAppearance="@*android:style/TextAppearance.StatusBar.Icon" android:gravity="left|center" android:paddingLeft="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
          2.状态栏下拉时候万恶的日期显示隐藏
          自己对比下,你就懂了,不好表述
          </LinearLayout>
          <com.android.systemui.statusbar.DateView android:textAppearance="@*android:style/TextAppearance.StatusBar.Icon" android:gravity="left|center" android:id="@id/date" android:background="@drawable/statusbar_background" android:paddingLeft="6.0px" android:paddingRight="6.0px" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
          </LinearLayout>
          <com.android.systemui.statusbar.DateView android:textAppearance="@*android:style/TextAppearance.StatusBar.Icon" android:id="@id/date" android:background="#00000000" android:paddingLeft="-66.0px" android:paddingRight="-66.0px" android:layout_width="0.0dip" android:layout_height="0.0dip" android:singleLine="true" />
          3.状态栏时间居中:搜索clock
          删除带有clock的这一段,
          在id/icons这一段上面添加
          <com.android.systemui.statusbar.Clock android:textAppearance="@*android:style/TextAppearance.StatusBar.Icon" android:layout_gravity="center_horizontal" android:paddingTop="4.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
          这段代码当中的4.0dip意思是距离顶部的距离,改了高度就需要适当调整…
          4.状态栏图片运营商【个性网标】
          找到
          ①<com.android.systemui.statusbar.IconMerger
          复制代码
          在上面那段代码的前面添加
          ②<ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/spn_logo" android:layout_marginTop="2.0dip" android:layout_marginBottom="2.0dip" />
          复制代码
          ⑦个性网标文件命名为spn_logo.png,放到res\drawable-mdpi\下。分辨率无所谓,不要太宽就行。
          5.状态栏时间居中到秒:
          ①找到res\layout\status_bar.xml
          ②打开status_bar.xml(内容不一定会完全一样,但方法一样,安卓通用)
          ③找到以下代码:(可以搜索,快一些)
          <com.android.systemui.statusbar.Clock android:textAppearance="@android:style/TextAppearance.StatusBar.Icon" android:gravity="left|center" android:paddingRight="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
          ④把以上的代码全部删除,注意不要删错了!
          ⑤再次找到这一句:(也就是第三行)
          xmlns:android="http://schemas.android.com/apk/res/android">
          ⑥在这句的下面添加如下代码!
          <DigitalClock android:textAppearance="@android:style/TextAppearance.StatusBar.Icon" android:layout_gravity="center_horizontal" android:id="@+id/digitalClock" android:paddingTop="4.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" />
          6.状态栏时间字体颜色,
          你可以有两种办法修改颜色,样式:
          一、添加或者修改 android:textColor="TEXTCOLOR",android:textStyle="TEXTSTYLE",TEXTCOLOR值可是个HTML值,形式是TTRRGGBB,TT表示透明度FF表示全色,00表示全透明,RRGGBB是正常的颜色值;TEXTSTYLE的值可以使italic,bold或者是italic|bold。
          二、修改android:textAppearance,不过这不建议,因为很多其他的东西也是用这个属性的,建议不采用这个办法,textAppearance在framework-res.apk里有写。
          三、举一个例子如果你要个黑色的并且加粗的时间,可以这样写
          <com.android.systemui.statusbar.Clock android:textColor="#ff000000"
          android:textStyle="bold" android:textAppearance="@android:style/TextAppearance.StatusBar.Icon" android:gravity="left|center" android:addingRight="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
          这样你就可以得到一个黑色的加粗的始终颜色。
          在原先的代码中加入了
          android:textSize="18.0dip" android:textStyle="normal" android:textColor="#ff000000"
          现在咱们来解析下android:textSize="18.0dip" 字体大小数字可以自定义
          android:textStyle="normal这后面的normal是正常的意思,也可以改为android:textStyle="bold"那么就是黑色加粗
          android:textColor="#ff000000"这就是颜色了ff000000就是黑色的意思,当然也可以改为其他颜色如#ffffffff白色#00000000透明
          颜色代码可以自行百度查找。


          IP属地:广东来自Android客户端5楼2013-11-29 10:00
          收起回复
            status_bar_expanded.xml通知栏整体布局——第一部分
            1.去除通知栏运营商显示:你自己对比一下下面的A段和B段,这个不好表述,主要是dip的区别。
            A段。。。
            <LinearLayout android:orientation="horizontal" android:background="@drawable/title_bar_portrait" android:paddingTop="3.0dip" android:paddingRight="3.0dip" android:paddingBottom="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content">
            <LinearLayout android:layout_gravity="center_vertical" android:orientation="vertical" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:layout_marginTop="1.0dip" android:layout_weight="1.0">
            <com.android.systemui.statusbar.CarrierLabel android:textAppearance="?android:textAppearanceLarge" android:textColor="#ffdfdfdf" android:layout_gravity="center_vertical" android:id="@id/carrierlabel_spn0" android:paddingLeft="4.0dip" android:paddingBottom="1.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:layout_marginTop="1.0dip" />
            <com.android.systemui.statusbar.CarrierLabel android:textAppearance="?android:textAppearanceLarge" android:textColor="#ffdfdfdf" android:layout_gravity="center_vertical" android:id="@id/carrierlabel_spn1" android:paddingLeft="4.0dip" android:paddingBottom="1.0dip" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5.0dip" android:layout_marginTop="1.0dip" />
            </LinearLayout>
            ………………………………………………
            B段# <LinearLayout android:orientation="horizontal" android:background="@drawable/title_bar_portrait" android:paddingTop="0.0dip" android:paddingRight="0.0dip" android:paddingBottom="0.0dip" android:layout_width="fill_parent" android:layout_height="20.0dip">
            <LinearLayout android:layout_gravity="center_vertical" android:orientation="vertical" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_marginLeft="0.0dip" android:layout_marginTop="0.0dip" android:layout_weight="1.0">
            <com.android.systemui.statusbar.CarrierLabel android:textAppearance="?android:textAppearanceLarge" android:textColor="#00000000" android:layout_gravity="center_vertical" android:id="@id/carrierlabel_spn0" android:paddingLeft="0.0dip" android:paddingBottom="0.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="0.0dip" android:layout_marginTop="0.0dip" />
            <com.android.systemui.statusbar.CarrierLabel android:textAppearance="?android:textAppearanceLarge" android:textColor="#00000000" android:layout_gravity="center_vertical" android:id="@id/carrierlabel_spn1" android:paddingLeft="0.0dip" android:paddingBottom="0.0dip" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="0.0dip" android:layout_marginTop="0.0dip" />
            </LinearLayout>
            ……………………………………………………
            ……………………………………………………


            IP属地:广东来自Android客户端6楼2013-11-29 10:05
            回复
              status_bar_expanded.xml通知栏整体布局——第二部分!
              2.通知栏通知清除按钮一般是由框架决定的,而要想好看……就得独立清除按钮
              这里有两个方法:
              搜索id/clear_all_button(此为清除按钮的id)找到以下内容:
              <TextView android:textSize="14.0sp" android:textColor="#ffffffff" android:layout_gravity="center_vertical" android:id="@id/clear_all_button" android:background="@*android:drawable/btn_default_small" android:paddingLeft="15.0dip" android:paddingRight="15.0dip" android:layout_width="90.0dip" android:layout_height="35.0dip" android:layout_marginTop="4.0dip" android:layout_marginBottom="1.0dip" android:text="@string/status_bar_clear_all_button" style="?android:attr/buttonStyle" />
              </LinearLayout>
              ①不带效果的:
              将 android:background="@*android:drawable/btn_default_small"改为 android:background="@drawable/clear"
              在drawable-mdpi文件夹里放一张图片命名为clear.png
              ②带有效果《按下按钮时》的:
              将 android:background="@*android:drawable/btn_default_small"改为 android:background="@drawable/clear_button"
              在drawable文件夹内新建clear_button.xml
              ,内容如下:〔PS:开头没有空格〕
              <selector
              xmlns:android="http://schemas.android.com/apk/res/android">
              <item android:state_pressed="true" android:drawable="@drawable/btn_clear_pressed" />
              <item android:drawable="@drawable/btn_clear" />
              </selector>
              …………………………………………………
              然后再在drawable-mdpi内放入三张图片:①btn_clear_focus.png ②btn_clear.png
              ③btn_clear_pressed.png
              ……………………………………………………
              代码中 android:textSize="14.0sp"表示清除按钮"清除"两个字的大写为14, android:textColor="#ffffffff" 表示清除按钮字体颜色为黑色,想要不显示字就改为透明或者打空格吧
              ………………………………………………………………………………………………………
              3.通知栏中
              “无通知”《@id/noNotificationsTitle 》
              “正在进行的”《 @id/ongoingTitle" 》
              “通知” 《@id/latestTitle" 》
              这些的背景的修改:
              ①只需要透明,在 values/drawables.xml 中找到 <item type="drawable" name="shade_bgcolor">#ff282828</item>
              改为 <item type="drawable" name="shade_bgcolor">#bb000000</item>
              就变成了黑色半透明
              ②想更换成图片,把对应id后面的的 "@drawable/ shade_bgcolor"改为 "@drawable/shade_header_background"
              那么,背景就变为了 shade_header_background这张图片
              ……………………………………………………
              这些字的字体颜色修改:【对比A段和B段,B段字体颜色就变为了白色】
              A段
              <TextView android:textAppearance="@style/TextAppearance.StatusBar.Title" android:id="@id/ongoingTitle" android:background="@drawable/shade_header_background" android:paddingLeft="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_ongoing_events_title" />
              B段
              <TextView android:textAppearance="@style/TextAppearance.StatusBar.Title" android:textColor="#ffffffff" android:id="@id/ongoingTitle" android:background="@drawable/shade_header_background" android:paddingLeft="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_ongoing_events_title" />
              …………………………………………………………………………………………………………
              4.关于我在群里发的截图中正在进行的置顶,开关在中间,通知在最后只要把相应的id顺序换一下就够了:-状态栏图标的位置改动类似…[要注意前面开头空格--
              5.通知栏显示模拟时钟,这个有点蛋疼了… 找到代码:
              </com.android.systemui.statusbar.ExpandedView>
              也就是最后一行,在这一行的上一行添加以下代码以单独一行显示
              <AnalogClock android:layout_gravity="bottom" android:id="@+id/AnalogClock" android:layout_width="125.0dip" android:layout_height="125.0dip" />


              IP属地:广东来自Android客户端7楼2013-11-29 10:07
              收起回复
                下面那一楼是写好的清除按钮代码…放在drawable/clear_button.xml


                IP属地:广东来自Android客户端8楼2013-11-29 10:11
                收起回复
                  <?xml version="1.0" encoding="utf-8"?>
                  <selector
                  xmlns:android="http://schemas.android.com/apk/res/android">
                  <item android:state_pressed="true" android:drawable="@drawable/btn_clear_pressed" />
                  <item android:drawable="@drawable/btn_clear" />
                  </selector>


                  IP属地:广东来自Android客户端9楼2013-11-29 10:11
                  收起回复
                    这是神马来的?
                       --相爱是两个人的天长地久,相思是一个人的地老天荒。


                    IP属地:广东来自Android客户端10楼2013-11-29 12:18
                    收起回复
                      顶帖~
                            ——You feel lonely not when no one cares about you, but when someone you expect to care doesn't care about you at all.—— 你之所以感到孤独,并不是没有人关心你,而是你在乎的那个人没有关心你。


                      IP属地:四川来自Android客户端11楼2013-11-29 12:49
                      回复
                        路过顶帖!              ————〔从未顾及我的感受又怎会知道我多难受 ]
                           --11CC


                        来自Android客户端12楼2013-11-29 13:06
                        回复


                          13楼2013-11-29 13:16
                          回复
                            技术贴


                            IP属地:福建来自Android客户端15楼2013-11-29 18:46
                            回复
                              我只能说,你直接说语法最直接


                              IP属地:天津来自Android客户端16楼2013-11-30 06:42
                              收起回复