Samsungの2.3.xでステータスバーが困る理由
なまず速報の @ayunyan さんが大変お困りでしたので確認してみました。
手元にあったのを適当に並べたのが以下の覚書です。
上の方の TextAppearance 云々がスタイルの定義で、下の方の status_bar 云々が実際に表示してるレイアウトの定義です。
サムスン以外はスタイルの定義してるのにレイアウトで
<TextView android:textAppearance="@style/TextAppearance.StatusBar.EventContent.Title"(以下略)
と @style を使ってるのに、サムスンは
<TextView android:textSize="16.0dip" android:textStyle="bold" android:textColor="@color/status_bar_event_primary_text"(以下略)
と直接指定しています。
仕様かなぁ。コレ…
「エラーではない」(キリッ
status_bar_latest_event_content.xmlおぼえがき
続きましておぼえがき
/system/framework/framework-res/res/layout/status_bar_latest_event_content.xml
MOTOACTV(ro.build.version.release=2.3.4)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:orientation="vertical" android:paddingLeft="5.0dip" android:paddingTop="7.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <LinearLayout android:orientation="horizontal" android:paddingTop="3.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content"> <ImageView android:id="@id/icon" android:layout_width="25.0dip" android:layout_height="25.0dip" android:src="@drawable/arrow_down_float" android:scaleType="fitCenter" /> <TextView android:textAppearance="@style/TextAppearance.StatusBar.EventContent.Title" android:ellipsize="marquee" android:id="@id/title" android:paddingLeft="4.0dip" android:fadingEdge="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" android:layout_weight="1.0" /> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:textAppearance="@style/TextAppearance.StatusBar.EventContent" android:ellipsize="marquee" android:id="@id/text" android:paddingLeft="4.0dip" android:fadingEdge="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:layout_weight="1.0" /> <android.widget.DateTimeView android:textAppearance="@style/TextAppearance.StatusBar.EventContent" android:id="@id/time" android:paddingRight="5.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="4.0dip" android:singleLine="true" /> </LinearLayout> </LinearLayout>
SC-02C(ro.build.version.release=2.3.6)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:orientation="vertical" android:paddingLeft="7.3299866dip" android:paddingTop="8.0dip" android:paddingRight="5.3299866dip" android:paddingBottom="6.669983dip" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="25.329987dip"> <ImageView android:id="@id/icon" android:layout_width="25.329987dip" android:layout_height="fill_parent" android:src="@drawable/arrow_down_float" android:scaleType="fitCenter" /> <TextView android:textSize="16.0dip" android:textStyle="bold" android:textColor="@color/status_bar_event_primary_text" android:ellipsize="marquee" android:id="@id/title" android:paddingLeft="9.329987dip" android:fadingEdge="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" android:singleLine="true" android:layout_weight="1.0" /> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="19.329987dip"> <TextView android:textSize="14.0dip" android:textColor="@color/status_bar_event_secondary_text" android:ellipsize="marquee" android:id="@id/text" android:paddingLeft="34.669983dip" android:fadingEdge="horizontal" android:layout_width="0.0dip" android:layout_height="fill_parent" android:singleLine="true" android:layout_weight="1.0" /> <android.widget.DateTimeView android:textSize="14.0dip" android:textColor="@color/status_bar_event_secondary_text" android:gravity="right" android:id="@id/time" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" /> </LinearLayout> </LinearLayout>
S51SE(ro.build.version.release=2.3.4)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:orientation="vertical" android:paddingLeft="5.0dip" android:paddingTop="7.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <LinearLayout android:orientation="horizontal" android:paddingTop="3.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content"> <ImageView android:id="@id/icon" android:layout_width="25.0dip" android:layout_height="25.0dip" android:src="@drawable/arrow_down_float" android:scaleType="fitCenter" /> <TextView android:textAppearance="@style/TextAppearance.StatusBar.EventContent.Title" android:ellipsize="marquee" android:id="@id/title" android:paddingLeft="4.0dip" android:fadingEdge="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" android:layout_weight="1.0" /> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:textAppearance="@style/TextAppearance.StatusBar.EventContent" android:ellipsize="marquee" android:id="@id/text" android:paddingLeft="4.0dip" android:fadingEdge="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:layout_weight="1.0" /> <android.widget.DateTimeView android:textAppearance="@style/TextAppearance.StatusBar.EventContent" android:id="@id/time" android:paddingRight="5.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="4.0dip" android:singleLine="true" /> </LinearLayout> </LinearLayout>
IS11S(ro.build.version.release=2.3.4)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:orientation="vertical" android:paddingLeft="5.0dip" android:paddingTop="7.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <LinearLayout android:orientation="horizontal" android:paddingTop="3.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content"> <ImageView android:id="@id/icon" android:layout_width="25.0dip" android:layout_height="25.0dip" android:src="@drawable/arrow_down_float" android:scaleType="fitCenter" /> <TextView android:textAppearance="@style/TextAppearance.StatusBar.EventContent.Title" android:ellipsize="marquee" android:id="@id/title" android:paddingLeft="4.0dip" android:fadingEdge="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" android:layout_weight="1.0" /> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:textAppearance="@style/TextAppearance.StatusBar.EventContent" android:ellipsize="marquee" android:id="@id/text" android:paddingLeft="4.0dip" android:fadingEdge="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:layout_weight="1.0" /> <android.widget.DateTimeView android:textAppearance="@style/TextAppearance.StatusBar.EventContent" android:id="@id/time" android:paddingRight="5.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="4.0dip" android:singleLine="true" /> </LinearLayout> </LinearLayout>
Galaxy Nexus
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@id/status_bar_latest_event_content" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <ImageView android:id="@id/icon" android:background="@drawable/notify_panel_notification_icon_bg_tile" android:layout_width="@dimen/notification_large_icon_width" android:layout_height="@dimen/notification_large_icon_height" android:scaleType="center" /> <include android:layout_gravity="center" android:layout_width="fill_parent" android:layout_height="wrap_content" layout="@layout/status_bar_latest_event_content_large_icon" /> </LinearLayout>
/system/framework/framework-res/res/layout/status_bar_latest_event_content_large_icon.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:layout_gravity="center" android:orientation="vertical" android:id="@id/status_bar_latest_event_content_large_icon" android:paddingLeft="12.0dip" android:paddingRight="12.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android"> <TextView android:textAppearance="@style/TextAppearance.StatusBar.EventContent.Title" android:ellipsize="marquee" android:id="@id/title" android:fadingEdge="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" /> <TextView android:textAppearance="@style/TextAppearance.StatusBar.EventContent" android:ellipsize="marquee" android:id="@id/text2" android:visibility="gone" android:fadingEdge="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="-2.0dip" android:layout_marginBottom="-2.0dip" android:singleLine="true" /> <LinearLayout android:orientation="horizontal" android:id="@id/line3" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:textAppearance="@style/TextAppearance.StatusBar.EventContent" android:ellipsize="marquee" android:layout_gravity="center" android:id="@id/text" android:fadingEdge="horizontal" android:layout_width="0.0dip" android:layout_height="wrap_content" android:singleLine="true" android:layout_weight="1.0" /> <TextView android:textAppearance="@style/TextAppearance.StatusBar.EventContent.Info" android:gravity="center" android:layout_gravity="center" android:id="@id/info" android:paddingLeft="8.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:layout_weight="0.0" /> <ImageView android:layout_gravity="center" android:id="@id/icon" android:paddingLeft="8.0dip" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaleType="center" android:layout_weight="0.0" android:drawableAlpha="180" /> </LinearLayout> <ProgressBar android:id="@id/progress" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="wrap_content" style="?android:attr/progressBarStyleHorizontal" /> </LinearLayout>
ということです。
なるほど。サムスンは style 使わずに直接色指定してますね。
TextAppearance.StatusBar.EventContentのおぼえがき
おぼえがき
/system/framework/framework-res/res/values/styles.xml
MOTOACTV(ro.build.version.release=2.3.4)
<style name="TextAppearance.StatusBar.EventContent" parent="@style/TextAppearance.StatusBar"> <item name="textColor">@color/primary_text_light</item> </style> <style name="TextAppearance.StatusBar.EventContent.Title" parent="@style/TextAppearance.StatusBar.EventContent"> <item name="textSize">16.0sp</item> <item name="textStyle">bold</item> <item name="textColor">@color/primary_text_light</item> </style>
/system/framework/framework-res/res/color/primary_text_light.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_window_focused="false" android:state_enabled="false" android:color="@color/bright_foreground_light_disabled" /> <item android:state_enabled="false" android:state_selected="true" android:color="@color/bright_foreground_light_disabled" /> <item android:state_enabled="false" android:state_pressed="true" android:color="@color/bright_foreground_light_disabled" /> <item android:state_selected="true" android:color="@color/bright_foreground_light" /> <item android:state_pressed="true" android:color="@color/bright_foreground_light" /> <item android:state_enabled="false" android:color="@color/bright_foreground_light_disabled" /> <item android:state_window_focused="false" android:color="@color/bright_foreground_light" /> <item android:color="@color/bright_foreground_light" /> </selector>
SC-02C(ro.build.version.release=2.3.6)
<style name="TextAppearance.StatusBar.EventContent" parent="@style/TextAppearance.StatusBar"> <item name="textColor">@color/status_bar_event_secondary_text</item> </style> <style name="TextAppearance.StatusBar.EventContent.Title" parent="@style/TextAppearance.StatusBar.EventContent"> <item name="textSize">16.0sp</item> <item name="textStyle">bold</item> <item name="textColor">@color/status_bar_event_primary_text</item> </style>
/system/framework/framework-res/res/values/colors.xml
<color name="status_bar_event_primary_text">#ffffffff</color> <color name="status_bar_event_secondary_text">#ffb6cad6</color>
S51SE(ro.build.version.release=2.3.4)
<style name="TextAppearance.StatusBar.EventContent" parent="@style/TextAppearance.StatusBar"> <item name="textColor">#ff3d3d3d</item> </style> <style name="TextAppearance.StatusBar.EventContent.Title" parent="@style/TextAppearance.StatusBar.EventContent"> <item name="textSize">16.0sp</item> <item name="textStyle">bold</item> <item name="textColor">?textColorPrimaryInverse</item> </style>
IS11S(ro.build.version.release=2.3.4)
<style name="TextAppearance.StatusBar.EventContent" parent="@style/TextAppearance.StatusBar"> <item name="textColor">#ff3d3d3d</item> </style> <style name="TextAppearance.StatusBar.EventContent.Title" parent="@style/TextAppearance.StatusBar.EventContent"> <item name="textSize">16.0sp</item> <item name="textStyle">bold</item> <item name="textColor">?textColorPrimaryInverse</item> </style>
Galaxy Nexus
<style name="TextAppearance.StatusBar.EventContent" parent="@style/TextAppearance.StatusBar"> <item name="textSize">13.0sp</item> <item name="textColor">?textColorSecondary</item> </style> <style name="TextAppearance.StatusBar.EventContent.Title" parent="@style/TextAppearance.StatusBar.EventContent"> <item name="textSize">16.0sp</item> <item name="textStyle">bold</item> <item name="textColor">?textColorPrimary</item> </style>
メーカーでいろいろですね。さて?