导航抽屉改变颜色

时间:2013-09-12 08:57:24

标签: android android-layout navigation-drawer

我使用导航抽屉使用this示例。我想把蓝色改成橙色我怎么能这样做?我的意思是改变listview选择器颜色,actionbar selctor颜色的一切。

7 个答案:

答案 0 :(得分:6)

您可以使用选择器

在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>

在drawable foldernormal.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

快照

enter image description here

答案 1 :(得分:5)

你必须为此做两件事。

  1. for listview创建自定义列表视图选择器(请参阅答案@raghunandan)
  2. for actionbar Go here创建样式并从清单设置样式,将应用程序主题设置为您创建的样式

答案 2 :(得分:1)

试试这段代码,

mDrawerLayout.setBackgroundResource(int);

答案 3 :(得分:0)

您需要使用选择器。

查看本教程了解更多信息。 customizing listviews

答案 4 :(得分:0)

对于ActionBar backgroownd:

<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>

答案 5 :(得分:0)

我想为@Raghunandan给出的答案做出贡献。在列表中,您可以区分被激活的项目(android:state_activated)中单击的项目(android:state_pressed),因此如果您单击列表中激活的项目,则可以看到该单击。

在drawable文件夹下创建一个activated.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#6A6A6A"/>
</shape>

并修改了添加state_activated修饰符的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_activated="true" 
        android:drawable="@drawable/activated" />

    <item android:state_focused="false" 
        android:drawable="@drawable/normal" />
</selector>

答案 6 :(得分:0)

使用选择器实现此目的。您可以使用@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"/