移动叔叔

标题: 如何打造信号居左、时间居中、仿iphone状态栏,进来就教你 [打印本页]

作者: ty58    时间: 2013-5-7 14:36
标题: 如何打造信号居左、时间居中、仿iphone状态栏,进来就教你
如果你想定制自己的状态栏,又不想自己动手,那么请关闭此帖,此贴并不复杂,只需要照着步骤做,绝对能成功,完全傻瓜式的步骤,过程没有任何需要靠脑力的,只要跟个机器人一样照着做一遍,就能成功,先看看效果

                                 修改前,正常的状态栏(时间居中过的):
                                  [attach]244542[/attach]
                                 修改后(信号和运营商居左了):
                                 
                                  [attach]244543[/attach]


     此教程是一条龙化教你成功制作出属于自己的状态栏,    任何版本的安卓都可以。
此教程纯原创手打,来自miui论坛:肛里痛,欢迎转载,转载时请附上此贴连接,谢绝无良转载者转载后不注名。


此教程分为3个部分:
搭建JAVA环境与反编译需要的工具
反编译状态栏并修改布局
回编译后如何替换进系统





①:搭建JAVA环境与反编译需要的工具
(此贴教程是强制化,所有工具都要使用此贴的,否则环境变量可能会因为你的工具不一样出错)
#开始搭建JAVA、配置环境
1.首先下载JDK1.6.0、MIUI专用apktool1.5.0,编辑xml的notepad++内含CMD。

JDK1.6.0_10版本http://www.jcku.com/soft/38398.html
apktool1.5.0版http://pan.baidu.com/share/link?shareid=265801&uk=154405591
notepad++
http://www.xiazaiba.com/html/186.html



下载后安装JKD1.6.0,安装时一切默认,路径不要更改,方便我们环境搭建统一。
然后我们到D盘建立一个文件夹,命名为MIUI,将apktool里的工具全部解压到MIUI里面。
2.

右键”我的电脑“-”属性“-”高级系统设置“
打开环境变量,新建以下变量:

[attach]244544[/attach]
           
[attach]244545[/attach]

新建以下变量:
(1)变量名:JAVA_HOME
变量值: C:\Program Files\Java\jdk1.6.0

[attach]244546[/attach]

(2)变量名:CLASSPATH
变量值:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

[attach]244547[/attach]

(3)打开变量名:Path
*在末尾添加:
;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

[attach]244548[/attach]

#end
完成对JAVA环境的配置


#开始搭建反编译需要的配置
搭建好java环境后,我们需要配置以下apktool反编译的环境。
首先,你反编译系统的文件,例如状态栏,那么必须有系统的框架资源
我们用RE管理器或者电脑端的360手机助手,将手机系统文件中的的System/framework文件夹导出到电脑
或者直接从你的ROM中提取,提取framework文件夹里的东西后,全部放到我们先前建立的MIUI文件夹里。
然后将system/app/MiuiSystemUI.apk
就是状态栏
也放到MIUI文件夹里
现在MIUI文件夹下应该包含以下文件,如图:
1.apktool工具
2.framework文件夹中的文件
3.MiuiSystemUI.apk状态栏


[attach]244549[/attach]

然后打开CMD.exe
分别输入以下2条代码,输入代码后要回车:
  1. apktool if framework-res.apk

  2. apktool if framework-miui-res.apk
复制代码
这样就完成了反编译工具搭建,进入反编译教程。

[attach]244550[/attach]


②.反编译状态栏以及修改代码
1.打开cmd.exe
输入以下代码
apktool d miuisystemui.apk
MIUI目录下会生成一个MiuiSystemUI文件夹
打开进入res/layout
找到status_bar.xml用notepad++打开

[attach]244551[/attach]

看到密密麻麻的代码,是不是很头疼?其实很简单,我们想要改变哪个图标的位置就移动指向他的那行代码即可
以下①是时间居中 ②是信号居左③是仿iphone


①时间居中,如果你仅仅想时间居中,那么做完这一步就跳过②和③



找到这个开头的代码,双击删除一整行

[attach]244552[/attach]

然后到
<LinearLayout
androidrientation="horizontal" android:id="@id/icons"这条代码的上面
新建以下代码:
  1.     <LinearLayout android:gravity="center"
  2. android:orientation="horizontal" android:layout_width="fill_parent"
  3. android:layout_height="fill_parent">
  4.      
  5.    <com.android.systemui.statusbar.policy.Clock
  6. android:textAppearance="@style/TextAppearance.StatusBar.Clock"
  7. android:id="@id/clock" android:gravity="center" android:textSize="16.0dip"
  8. android:textColor="#ffffffff" android:paddingTop="1.0px"
  9. android:layout_width="wrap_content" android:layout_height="fill_parent"
  10. android:singleLine="true" android:layout_weight="1.0" />

  11. </LinearLayout>
复制代码
同样要注意代码前段对齐,如图


[attach]244560[/attach]

这样就是时间居中了,如果搭配上信号居左就是iphone,如果想做仿iphone就接着看。

②信号居左
我们找到这行代码


[attach]244561[/attach]

通过简单的翻译字面意思,我们知道这是代表信号的代码
我们将它移动到<LinearLayout
androidrientation="horizontal"
android:id="@id/icons"
这一行的下面,注意代码要按照图中对齐!

[attach]244562[/attach]

这样就完成了信号图标居左,如果你仅仅需要居左,就这样修改就成功了,如果你需要仿iphone的,那么接下看。

③仿iphone
仿iphone的话,那么我们的状态栏图标排列顺序目标是:
信号-运营商-wifi-时间居中-电池
上面2条中,我们已经将时间和信号位置弄好了,现在的位置是wifi-信号-运营商-时间居中-电池
我们需要将信号这块的位置更改为信号-运营商-wifi,那么我们先将运营商这行剪切,也可以双击直接删除

[attach]244563[/attach]

然后打开res/layout/signal_cluster_view.xml

[attach]244564[/attach]

这个文件,通过判断,我们知道这个是信号这块的布局
我们将刚才剪切的运营商,加上一个线性布局后,放到信号的下面
代码为
  1. <LinearLayout android:paddingTop="2.0px"
  2. android:layout_width="wrap_content"
  3. android:layout_height="wrap_content">
  4.   <com.android.systemui.statusbar.phone.CarrierLabel
  5. android:textAppearance="@style/TextAppearance.StatusBar.Clock"
  6. android:gravity="left|center" android:id="@id/carrier"
  7. android:layout_width="wrap_content" android:layout_height="fill_parent"
  8. android:singleLine="true" />
  9. </LinearLayout>
复制代码
[attach]244565[/attach]

再将wifi移动到运营商的下面,下图是改好的,对照上图就知道怎么移动了


[attach]244566[/attach]

同时删除wifi后面的这两行代码,这个不解释了有兴趣自己看看安卓布局讲解

[attach]244567[/attach]

这样就完成了仿iphone的配置。


修改完毕后,我们切记要点击保存,才能生效哦!

回编译状态栏与替换到系统
替换完毕后重启,你就能看到效果啦!!






欢迎光临 移动叔叔 (http://bbs.ydss.cn/) Powered by Discuz! X3.2