色を明示的に定義していないアプリがあります。私の電話では、オフィスの他のいくつかの電話とはアプリが異なって見えます (私の電話ではアプリの上部にあるタイトル バーは青で白い文字が表示され、他の電話では灰色で白い文字が表示されます)。それらをすべて同じにするにはどうすればよいですか?アプリで明示的に色を設定するのと同じくらい簡単ですか?
3 に答える
すべてのボタン、テキストビュー、およびその他の設計者以外の UI 要素は、選択したテーマに応じて外観が変わります。デフォルトのテーマを選択すると、デバイスのメーカーや Android のバージョンなどによって、すべての GUI ウィジェットの外観が異なります。
Holo などの具体的なテーマを指定できますが、Android 3.0 より前のバージョンでは動作しないという問題があります。古いバージョンのデフォルト テーマをそのまま使用することも、この Web サイトを使用してすべての Holo スタイルの GUI 要素を自分で生成することもできます。
利用可能なテーマのいずれかをアプリケーションに適用する必要があります。あなたはそれを行うことができますAndroidManifest.xml
、ただandroid:theme
属性を使用してください:
android:theme="@android:style/Theme.Holo"
暗いテーマが必要なandroid:theme="@android:style/Theme.Holo.Light"
場合、または明るいテーマが必要な場合。
このアプリを<activity>
タグの 1 つに配置すると、対応するアクティビティのみがスタイル設定され、<application>
タグに配置すると、アプリケーション全体にスタイルが適用されます。
もちろん、独自のスタイルを で定義できますstyles.xml
。
<style name="AppTheme" parent="android:Theme.Light">
<item name="android:windowBackground">@drawable/bg_window</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
</style>
の例を次に示しAndroidManifest.xml
ます。
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<activity
android:name=".Activity1"
android:theme="@style/AppTheme2"
/>
<activity
android:name=".Activity2"
/>
この例でAppTheme2
は、 は にのみ適用されActivity1
、AppTheme
は他のすべてのアクティビティに適用されます。
アプリの上部にあるタイトル バーは、私の電話では青で白い文字が表示され、他の電話では灰色で白い文字が表示されます
これは、一部の OEM のカスタマイズされたフレームワークの問題です。デフォルトの Android スタイルをオーバーライドします。タイトル バーが青いデバイスは、TouchWiz を搭載した Samsung デバイスだと思いますよね?
独自のテーマを宣言する必要がある、一貫したタイトル バーを持つようにします。
<style name="AppTheme" parent="android:Theme.Light">
<item name="android:windowBackground">@drawable/title_bar</item>
<item name="android:windowTitleStyle">@style/WindowTitle</item>
</style>
<style name="WindowTitle">
<item name="android:singleLine">true</item>
<item name="android:textAppearance">@style/TextAppearance.WindowTitle</item>
<item name="android:shadowColor">#BB000000</item>
<item name="android:shadowRadius">2.75</item>
</style>
元のtitle_bar 9 パッチ。
これがあなたの質問に対する答えです。ただし、私の意見では、タイトル バーを使用するべきではなく、代わりに ActionBar を使用してください。下位互換性のために ActionBarSherlock を使用できます。