この例を使用してナビゲーションドロワーを使用しています。青色をオレンジ色に変更したいのですが、どうすればよいですか? つまり、リストビューセレクターの色、アクションバーセレクターの色をすべて変更します。
7 に答える
セレクターを使用できます
drawable フォルダーには、以下のように selector.xml があります。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/press" />
<item android:state_focused="false"
android:drawable="@drawable/normal" />
</selector>
drawable フォルダ press.xml 内
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FF9D21"/>
</shape>
ドローアブルフォルダーnormal.xml内
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#8BC7EB"/>
</shape>
drawer_list_item.xml 内
android:background="@drawable/selector"
バーのスタイリングに
<resources>
<!--
Base application theme for API 11+. This theme completely replaces
AppBaseTheme from res/values/styles.xml on API 11+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<item name="android:background">@style/MyActionBar</item>
<!-- API 11 theme customizations can go here. -->
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.ActionBar">
<item name="android:background">@drawable/press</item>
</style>
</resources>
あなたのマニフェストで
<activity
android:name=".MainActivity"
android:theme="@style/MyActionBar"
android:label="@string/app_name">
アプリケーション全体ではなく、特定のアクティビティのテーマを指定できます。
詳しくは
http://android-developers.blogspot.in/2011/04/customizing-action-bar.html
https://developer.android.com/training/basics/actionbar/styling.html
スナップショット
これには 2 つのことを行う必要があります。
- リストビューの場合、カスタマイズされたリストビューセレクターを作成します(回答 @raghunandan を参照)
- アクションバーの場合は、ここに移動してスタイルを作成し、マニフェストからスタイルを設定し、アプリケーションのテーマを作成したスタイルに設定します
ActionBar 背景の場合:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="android:actionBarItemBackground">@drawable/bg_actionbar</item>
</style>
</resources>
セレクターを使用する必要があります。
詳細については、このチュートリアルを確認してください。リストビューのカスタマイズ
これを実現するには、Selector を使用します。またはのいずれかを使用でき@drawable
ます@color
。
item android:drawable="@drawable/list_item_bg_pressed" android:state_pressed="true"/>
item android:drawable="@drawable/list_item_bg_normal" android:state_activated="false"/>
item android:drawable="@drawable/list_item_bg_selected" android:state_activated="true"/
@Raghunandan の回答に貢献したいと思います。リストでは、クリックされたアイテム (android:state_pressed) とアクティブ化されたアイテム (android:state_activated) を区別できるため、リスト内のアクティブ化されたアイテムをクリックすると、クリックが視覚化されます。
drawable フォルダーの下に activate.xml を作成します。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#6A6A6A"/>
</shape>
そして、selector.xml を変更して、state_activated 修飾子を追加します。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/press" />
<item android:state_activated="true"
android:drawable="@drawable/activated" />
<item android:state_focused="false"
android:drawable="@drawable/normal" />
</selector>