魅族状态栏布局如下
如下依旧是反编译framework-res和systemui
打开F:\ApkTool\framework-res\res\values找到dimens.xml用notepad++打开。
找到<dimen name="status_bar_height">25.0dip</dimen>把中间的25.0改为48.0或者其他,这个大小看你想把两行的图标改多大就是两行图标+2的高度(+2是要离底边各空1DIP。)推荐46~48.
然后再找到<dimen name="status_bar_icon_size">24.0dip</dimen>
中间的24.0就是单行图标的大小。24一般最好,就不改了。
然后回编译。
第二部,反编译systemui
找到status_bar.xml打开,
1:把时间改到左边,并占两排图标的高度。
找到时间块<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="left|center" android:id="@id/clock" android:paddingLeft="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />剪切到第一个线性布局下面。不会的看我第二个帖子。
并且把 注意这句android:gravity="left|center" 和我这个一样是居左居中即可(bottom是下,right右,left左,)
要是想离左边没有空格即把6.0DIP改为1.0或者0.0
然后到F:\ApkTool\systemui\res\values找到style.xml并打开。
找到代码
<style name="TextAppearance.StatusBar.Clock" parent="@*android:style/TextAppearance.StatusBar.Icon">
<item name="android:textSize">16.0dip</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">@*android:color/holo_blue_light</item>
把android:textSize的赋值改为你的状态栏高度(前面在framework中改的那个高度,最好减去个2.0DIP。如果大小不符,就重新调整数值即可)
想改颜色的,android:textColor">@*android:color/holo_blue_light</item>已经指明在color.xml中修改,
就在framework-res.apk中的values中找color.xml打开找holo_blue_light这一句,在上面已经指向了这个了。
当然我不建议这样改,因为还有其他的部分和这个共享着同一个颜色块,改了这个,其他的也就被改了。
可以自行在后面加上颜色代码,如<item name="android:textColor">#ffffffff</item>白色,替换这句<item name="android:textColor">@*android:color/holo_blue_light</item>即可。
2:把电量和信号分开放到上面(也可以在底下)
改成下面这样,参照着改就行,看不清下载附件对比着改。以下我不多做解释,不懂就看我之前的帖子,讲布局时已经讲过这个道理。重点部分前面是两个#号 并用大括号括起来,重点是后面的赋值。
<LinearLayout android:gravity="center_vertical"## {android:layout_gravity="right|center"} android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="6.0" android:layout_alignParentRight="true">
## { <LinearLayout android:gravity="right"} android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:layout_width="wrap_content" android:layout_height="fill_parent" ##{android:layout_marginLeft="1.0dip" android:layout_marginRight="1.0dip">}
##{<LinearLayout android:gravity="left" android:layout_gravity="left"} android:orientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent"##{ android:layout_alignParentLeft="true" />}
(注:alignParentLeft 是图标在父布局从 左显示,可以改为right右)
<include android:id="@id/signal_cluster" android:layout_width="wrap_content" android:layout_height="wrap_content" layout="@layout/signal_cluster_view" />
<TextView android:textSize="16.0sp" android:textColor="@*android:color/holo_blue_light" android:id="@id/percentage" android:paddingLeft="4.0dip" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ImageView android:id="@id/battery" android:paddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
完成
3:把通知图标放到底下
注意
<com.android.systemui.statusbar.phone.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:paddingTop="24.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentRight="true" />
中的android:paddingTop="24.0dip"
意思是向上24.0DIP 如果想放在上面就是android:paddingBottom="24.0dip" 意思是向下24.0DIP
android:layout_alignParentRight="true" 这个就是上面 注 的意思,注意我改成了right右
4:添加运营商显示(个性文字)不想要的可以不加
这个我不详细讲解,不会的看我上个帖子。
完成 回编译。
还有 记者把<com.android.systemui.statusbar.StatusBarIconView android:id="@id/moreIcon" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:paddingTop="24.0dip" android:src="@drawable/stat_notify_more" />
就是图标显示不下了出来的那个加号,加上 android:paddingTop="24.0dip" 当然改到地下也行,top改为bottom就行了。
仿魅族状态栏就完了,下来显示模拟时钟:
打开layout中的status_bar_expanded.xml(下拉)
给</com.android.systemui.statusbar.phone.ExpandedView>上面添加<AnalogClock android:layout_gravity="bottom" android:id="@+id/AnalogClock"android:layout_width="125.0dip"android:layout_height="125.0dip" />
这句即可,125.0DIP看你放到哪里,要是想放到日期后面就放到
<com.android.systemui.statusbar.policy.DateView这句底下就行了,并且改大小为日期栏的高度即可。回编译。
如下依旧是反编译framework-res和systemui
打开F:\ApkTool\framework-res\res\values找到dimens.xml用notepad++打开。
找到<dimen name="status_bar_height">25.0dip</dimen>把中间的25.0改为48.0或者其他,这个大小看你想把两行的图标改多大就是两行图标+2的高度(+2是要离底边各空1DIP。)推荐46~48.
然后再找到<dimen name="status_bar_icon_size">24.0dip</dimen>
中间的24.0就是单行图标的大小。24一般最好,就不改了。
然后回编译。
第二部,反编译systemui
找到status_bar.xml打开,
1:把时间改到左边,并占两排图标的高度。
找到时间块<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="left|center" android:id="@id/clock" android:paddingLeft="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />剪切到第一个线性布局下面。不会的看我第二个帖子。
并且把 注意这句android:gravity="left|center" 和我这个一样是居左居中即可(bottom是下,right右,left左,)
要是想离左边没有空格即把6.0DIP改为1.0或者0.0
然后到F:\ApkTool\systemui\res\values找到style.xml并打开。
找到代码
<style name="TextAppearance.StatusBar.Clock" parent="@*android:style/TextAppearance.StatusBar.Icon">
<item name="android:textSize">16.0dip</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">@*android:color/holo_blue_light</item>
把android:textSize的赋值改为你的状态栏高度(前面在framework中改的那个高度,最好减去个2.0DIP。如果大小不符,就重新调整数值即可)
想改颜色的,android:textColor">@*android:color/holo_blue_light</item>已经指明在color.xml中修改,
就在framework-res.apk中的values中找color.xml打开找holo_blue_light这一句,在上面已经指向了这个了。
当然我不建议这样改,因为还有其他的部分和这个共享着同一个颜色块,改了这个,其他的也就被改了。
可以自行在后面加上颜色代码,如<item name="android:textColor">#ffffffff</item>白色,替换这句<item name="android:textColor">@*android:color/holo_blue_light</item>即可。
2:把电量和信号分开放到上面(也可以在底下)
改成下面这样,参照着改就行,看不清下载附件对比着改。以下我不多做解释,不懂就看我之前的帖子,讲布局时已经讲过这个道理。重点部分前面是两个#号 并用大括号括起来,重点是后面的赋值。
<LinearLayout android:gravity="center_vertical"## {android:layout_gravity="right|center"} android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="6.0" android:layout_alignParentRight="true">
## { <LinearLayout android:gravity="right"} android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:layout_width="wrap_content" android:layout_height="fill_parent" ##{android:layout_marginLeft="1.0dip" android:layout_marginRight="1.0dip">}
##{<LinearLayout android:gravity="left" android:layout_gravity="left"} android:orientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent"##{ android:layout_alignParentLeft="true" />}
(注:alignParentLeft 是图标在父布局从 左显示,可以改为right右)
<include android:id="@id/signal_cluster" android:layout_width="wrap_content" android:layout_height="wrap_content" layout="@layout/signal_cluster_view" />
<TextView android:textSize="16.0sp" android:textColor="@*android:color/holo_blue_light" android:id="@id/percentage" android:paddingLeft="4.0dip" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<ImageView android:id="@id/battery" android:paddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
完成
3:把通知图标放到底下
注意
<com.android.systemui.statusbar.phone.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:paddingTop="24.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentRight="true" />
中的android:paddingTop="24.0dip"
意思是向上24.0DIP 如果想放在上面就是android:paddingBottom="24.0dip" 意思是向下24.0DIP
android:layout_alignParentRight="true" 这个就是上面 注 的意思,注意我改成了right右
4:添加运营商显示(个性文字)不想要的可以不加
这个我不详细讲解,不会的看我上个帖子。
完成 回编译。
还有 记者把<com.android.systemui.statusbar.StatusBarIconView android:id="@id/moreIcon" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:paddingTop="24.0dip" android:src="@drawable/stat_notify_more" />
就是图标显示不下了出来的那个加号,加上 android:paddingTop="24.0dip" 当然改到地下也行,top改为bottom就行了。
仿魅族状态栏就完了,下来显示模拟时钟:
打开layout中的status_bar_expanded.xml(下拉)
给</com.android.systemui.statusbar.phone.ExpandedView>上面添加<AnalogClock android:layout_gravity="bottom" android:id="@+id/AnalogClock"android:layout_width="125.0dip"android:layout_height="125.0dip" />
这句即可,125.0DIP看你放到哪里,要是想放到日期后面就放到
<com.android.systemui.statusbar.policy.DateView这句底下就行了,并且改大小为日期栏的高度即可。回编译。