먼저,
phyb님의 SKT 갤럭시s2 UH07 SGS3 테마의 SystemUI.apk를 사용했음을 알려드립니다.
SystemUI.apk를 디컴파일 한후 res/layout/tw_status_bar.xml 파일을 수정하면 됩니다.
파일까지 같으시다면 이것을 crtl c + ctrl v 하셔도 됩니다.
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.phone.PhoneStatusBarView android:orientation="vertical" android:background="@drawable/status_bar_background" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="center" android:id="@id/clock" android:paddingLeft="0.0dip" android:paddingBottom="2.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent" android:singleLine="true" android:includeF"false" />
<LinearLayout android:orientation="horizontal" android:id="@id/icons" android:paddingLeft="6.0dip" android:paddingRight="6.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:orientation="horizontal" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">
<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:src="@drawable/stat_notify_more" />
<com.android.systemui.statusbar.phone.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentLeft="true" />
</LinearLayout>
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" />
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:paddingLeft="2.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent">
<ImageView android:id="@id/ims_icon" android:paddingLeft="4.0dip" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<include android:id="@id/signal_cluster" android:layout_width="wrap_content" android:layout_height="wrap_content" layout="@layout/tw_signal_cluster_view" />
<FrameLayout android:gravity="center" android:paddingLeft="4.0dip" android:paddingRight="2.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent">
<ImageView android:gravity="center" android:id="@id/battery" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginBottom="1.0dip" />
<TextView android:textSize="12.0dip" android:typeface="sans" android:textColor="#ffbebebe" android:layout_gravity="center" android:id="@id/battery_text" android:paddingLeft="3.5dip" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/status_bar_network_name_separator" />
</FrameLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout android:orientation="horizontal" android:id="@id/ticker" android:background="@drawable/status_bar_background" android:paddingLeft="6.0dip" android:animati"false" android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageSwitcher android:id="@id/tickerIcon" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:layout_marginRight="4.0dip">
<com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="center" />
<com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="center" />
</ImageSwitcher>
<com.android.systemui.statusbar.phone.TickerView android:id="@id/tickerText" android:background="@drawable/status_bar_background" android:paddingTop="2.0dip" android:paddingRight="10.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0">
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" android:id="@id/ticker_text_view_old" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" android:id="@id/ticker_text_view_new" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
</com.android.systemui.statusbar.phone.TickerView>
</LinearLayout>
</com.android.systemui.statusbar.phone.PhoneStatusBarView>
빨간색으로 처리된 곳이 제가 수정한 부분입니다.
1. 맨 처음 빨간색 처리된 문구는 시계를 중앙으로 보내는 것입니다. xml파일 중간쯤에 statusbar.policy.Clock 가 포함된 구문이 한개 더 있을건데 그 문구 1줄을 지우시고 위에다가 저문구를 적어주시면 됩니다.
2. 세번째 빨간색 처리된 문구들은 전부 원상태의 문구에
android:background="@drawable/status_bar_background" 만 추가해 준 것입니다.
xda 포럼에서나 맛클 예전 자료에서는 2번째 문구까지만 수정되어있었는데
3번째 문구에도 drawable/status_bar_background를 추가해줬더니 해결되었습니다.
다 적용하시면 시계는 중앙으로, 스크린샷을 찍으시거나 카카오톡 메시지등 푸쉬알림이 오면 좌측과 우측 아이콘들과 같이 밀려서 올라가면서 푸쉬알림 메시지만 보이게 됩니다.
-------------------------------
이유는 모르겠지만 제 글에서 저 문구들을 ctrl c+ctrl v 하면 컴파일시 오류를 뿜네요.
컴파일 성공한 SystemUI.apk의 tw_status_bar.xml을 올리겠습니다. (phyb님 SGS3 테마 BLUE / textonly)
xml 메모장 상에서 복사해서 붙여넣기하니 오류가 없네요..:)
처음 빨간줄 부분에서 아래와 같이 에러발생되네요.
C:\Users\Windows7\Desktop\Apk_Manager_5.0.2_softdx\other\..\projects\SystemUI.apk\res\layout\tw_status_bar.xml:5: error: Error parsing XML: not well-formed (invalid token)
aapt: warning: string 'airplane_mode' has no default translation in C:\Users\Windows7\Desktop\Apk_Manager_5.0.2_softdx\other\..\projects\SystemUI.apk\res; found: en_US
Exception in thread "main" brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [aapt, p, -F, C:\Users\Windows7\AppData\Local\Temp\APKTOOL1560877554318981664.tmp, -I, C:\Users\Windows7\apktool\framework\1.apk, -S, C:\Users\Windows7\Desktop\Apk_Manager_5.0.2_softdx\other\..\projects\SystemUI.apk\res, -M, C:\Users\Windows7\Desktop\Apk_Manager_5.0.2_softdx\other\..\projects\SystemUI.apk\AndroidManifest.xml]
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:193)
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:301)
at brut.androlib.Androlib.buildResources(Androlib.java:248)
at brut.androlib.Androlib.build(Androlib.java:171)
at brut.androlib.Androlib.build(Androlib.java:154)
at brut.apktool.Main.cmdBuild(Main.java:182)
at brut.apktool.Main.main(Main.java:67)
Caused by: brut.common.BrutException: could not exec command: [aapt, p, -F, C:\Users\Windows7\AppData\Local\Temp\APKTOOL1560877554318981664.tmp, -I, C:\Users\Windows7\apktool\framework\1.apk, -S, C:\Users\Windows7\Desktop\Apk_Manager_5.0.2_softdx\other\..\projects\SystemUI.apk\res, -M, C:\Users\Windows7\Desktop\Apk_Manager_5.0.2_softdx\other\..\projects\SystemUI.apk\AndroidManifest.xml]
at brut.util.OS.exec(OS.java:83)
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:191)
... 6 more
tw_status_bar.xml 이것 하나로는 안되며 statusbar.policy.Clock 부분의 수정도 필요한것 같습니다.
제가 쓰는 방법입니다 겹치지는 않고 일정한 위치에 고정시키는 방법입니다.
경로 SystemUI.apk\res\layout\tw_status_bar.xml
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.phone.PhoneStatusBarView android:orientation="vertical" android:background="@drawable/status_bar_background" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<LinearLayout android:orientation="horizontal" android:id="@id/icons" android:paddingLeft="6.0dip" android:paddingRight="6.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:orientation="horizontal" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">
<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:src="@drawable/stat_notify_more" />
<com.android.systemui.statusbar.phone.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentLeft="true" />
</LinearLayout>
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" />
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="left" android:id="@id/clock" android:paddingLeft="5.799988dip" android:layout_width="197.0px" android:layout_height="fill_parent" android:singleLine="true" /> <---- 라인 추가
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:paddingLeft="2.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent">
<ImageView android:id="@id/ims_icon" android:paddingLeft="4.0dip" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<include android:id="@id/signal_cluster" android:layout_width="wrap_content" android:layout_height="wrap_content" layout="@layout/tw_signal_cluster_view" />
<FrameLayout android:gravity="center" android:paddingLeft="4.0dip" android:paddingRight="2.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent">
<ImageView android:gravity="center" android:id="@id/battery" android:layout_width="wrap_content" android:layout_height="fill_parent" />
<TextView android:textSize="7.0dip" android:typeface="sans" android:textStyle="bold" android:textColor="#ffffffff" android:layout_gravity="bottom|center" android:id="@id/battery_text" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/status_bar_network_name_separator" android:shadowColor="#ffffffff" android:shadowDx="0.0" android:shadowDy="0.0" android:shadowRadius="1.0" />
</FrameLayout>
</LinearLayout>
<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" /> <---- 라인 삭제
</LinearLayout>
<LinearLayout android:orientation="horizontal" android:id="@id/ticker" android:paddingLeft="6.0dip" android:animationCache="false" android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageSwitcher android:id="@id/tickerIcon" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:layout_marginRight="4.0dip">
<com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="center" />
<com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="center" />
</ImageSwitcher>
<com.android.systemui.statusbar.phone.TickerView android:id="@id/tickerText" android:paddingTop="2.0dip" android:paddingRight="10.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0">
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" android:id="@id/ticker_text_view_old" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" android:id="@id/ticker_text_view_new" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
</com.android.systemui.statusbar.phone.TickerView>
</LinearLayout>
</com.android.systemui.statusbar.phone.PhoneStatusBarView>