子毅工作室吧 关注:200贴子:3,860
  • 7回复贴,共1

《子毅工作室》:-反编译三排状态栏以及跑马灯

取消只看楼主收藏回复

ps:文字可以自定义
准备工具:
确保手机以安装反编译
ps:没安装去我空间看
re管理器
超级解压工具
jota+文本编辑
无限滚动文字文件(diy_jiuren) (下面有下载链接)
三排状态栏教程:
先提取system\framework目录下的framework-res.apk:
1用apktool反编译framework-res.apk
2.打开res/values/dimens.xml文件
3.修改如下代码:
<dimen
name="status_bar_height">25.0dip</dimen>
<dimen
name="status_bar_icon_size">25.0dip</dimen>
4.第一个是状态栏的高度,如果要双排就改成48.0dip 三排改成56.dip 由你的屏幕大小进行适当调整 我的屏幕比较大 改成61.dip 今天教大家的三排就建议改成56.dip吧 具体请自测
5.第二个是图标的高度,改成24.0dip,如果本来就是24.0dip就不用修改了 不论是双排还是三排 都保持24.dip不变
6.回编译,替换resources.arsc到原来的apk里 ,在替换好的用re管理器移动到system改好权限,在移动到app。然后重启手机。
布局教程 :
布局以后的样子为:
①第一排状态栏无限循环滚动文字 颜色、大小、长度、字体、内容都可以自定义,
②第二排状态栏自定义文字 颜色字体大小内容都可以自定义,第三排时间显秒居左下方,
③第三方图标(如QQ、360等后台图标)居左下方、系统图标(如静音图标振动图标闹钟图标)居右下方、电量信图标居右下方
首先 反编译SystemUI.apk后 用re管理器进入/res/layout里有一个staus_bar.xml的文件 用jota+文本编辑器打开
这就是所说的状态栏布局文件 图标的位置以及运营商 时间 电量的位置都是这个布局文件起着作用 打开后你会看到很多英文 以<LinearLayout android:……开头的 然后以<LinearLayout结束的就是一个完整的线性布局
android:gravity="top" android:layout_gravity="top" 类似这样的代码就是位置代码 将整段代码的位置指向一个地方 “”引号里的单词就是位置 常见的有top(上)、bottom(下)、left(左)、Right(右)。那么我们要进行布局就要把这四个方向代词组合在一起 比如bottom|left(左下)、top|right(右上方)等
为避免大家操作错误导致不能回编译 我就教大家简单的方法 直接复制粘贴用我改好的代码覆盖原来的就行了


IP属地:陕西来自Android客户端1楼2015-01-13 09:57回复
    1.在staus_bar.xml的第四行xmlns:systemui=" http://schemas.android.com/apk/re
    ……后面打一个空格 添加这段代码<include layout="@layout/diy_jiuren" /> <TextView android:textSize="14.0dip" android:textColor="#ffff69b4" android:gravity="center" android:layout_gravity="top|right|center" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="这里自定义文字 " /> 具体如下:
    xmlns:systemui="
    http://schemas.android.com/apk/res/com.android.systemui
    "> <include layout="@layout/diy_jiuren" /> <TextView android:textSize="14.0dip" android:textColor="#ffff69b4" android:gravity="center" android:layout_gravity="top|right|center" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="这里自定义文字 " />


    IP属地:陕西来自Android客户端2楼2015-01-13 10:02
    回复
      2.找到这一段代码<LinearLayout android:orientation="horizontal" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0"> 在后面打一个空格复制粘贴这段代码在后面 <DigitalClock android:textSize="18.0dip" android:textStyle="bold" android:textColor="#ff00ff00" android:gravity="bottom|left" android:layout_gravity="bottom|left" android:id="@+id/digitalClock" android:paddingLeft="0.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" /> 具体如下:
      <LinearLayout android:orientation="horizontal" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0"> <DigitalClock android:textSize="18.0dip" android:textStyle="bold" android:textColor="#ff00ff00" android:gravity="bottom|left" android:layout_gravity="bottom|left" android:id="@+id/digitalClock" android:paddingLeft="0.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" />


      IP属地:陕西来自Android客户端3楼2015-01-13 10:03
      回复
        3.找到 <com.android.systemui.statusbar.StatusBarIconView android:id="@id/moreIcon"和<com.android.systemui.statusbar.phone.IconMerger开头的两段代码 一般都是挨在一起的 替换为如下的两段:
        <com.android.systemui.statusbar.StatusBarIconView android:id="@id/moreIcon" android:gravity="top" android:layout_gravity="top" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:paddingTop="19.0dip" android:layout_height="fill_parent" android:src="@drawable/stat_notify_more" />
        <com.android.systemui.statusbar.phone.IconMerger android:gravity="top" android:layout_gravity="top" android:orientation="horizontal" android:id="@idtificationIcons" android:paddingTop="19.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" />


        IP属地:陕西来自Android客户端4楼2015-01-13 10:05
        回复
          4.找到<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/statusIcons"和<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/signal_battery_cluster"这两段代码然后删除 一般也是挨着的 很好找 找不到就搜索关键字 替换为如下的代码
          <LinearLayout android:gravity="bottom|right" android:layout_gravity="bottom|right" android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:paddingLeft="2.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent"> <LinearLayout android:gravity="bottom|right" android:layout_gravity="bottom|right" android:orientation="horizontal" android:id="@id/statusIcons" android:paddingRight="0.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" />


          IP属地:陕西来自Android客户端5楼2015-01-13 10:06
          回复
            5.到这里修改代码就结束了 保存并退出 把附件diy_jiuren复制到/res/layout目录下再用apktool进行回编译 回编译后提取生成的新apk"SystemUI_src.apk" 把/res/layout目录下的diy_jiuren和staus_bar.xml用超级压缩工具替换进原来的SystemUI.apk中或者re管理器分别提取两个apk进行替换 ,最后把替换好的移动到system改好权限,在移动到app覆盖,重启手机。


            IP属地:陕西来自Android客户端6楼2015-01-13 10:07
            回复
              ps:附件diy_jiuren为无限滚动文字,也就是跑马灯,不想要就不用加进去。


              IP属地:陕西来自Android客户端7楼2015-01-13 10:07
              收起回复
                效果图


                IP属地:陕西来自Android客户端8楼2015-01-13 10:11
                回复