Как изменить цвет акцента в моем приложении для Android с синего на что-то другое

Все, что я хочу сделать, это изменить цвет акцента в моем приложении для Android, но мне трудно понять, как это сделать. По умолчанию для Android сейчас синий, но я хочу сделать его оранжевым.

Под цветом акцента я имею в виду акцент вкладок навигации, цвет, который выделяется при нажатии на списки, цвет акцента во всплывающих диалоговых окнах и т. д.

Я использую actionbarsherlock, если это имеет значение.

Вот изображение. Я хочу изменить цвет этого синего акцента во всем приложении: введите здесь описание изображения


person jacosta    schedule 02.08.2012    source источник


Ответы (2)


Прошло некоторое время с тех пор, как вы задали этот вопрос, но теперь, когда Google выпустил новую версию AppCompat, вы можете делать то, чего хотите, довольно просто. Ответ, который я вам даю, взят из блога разработчиков Android библиотека поддержки 2.2.1.

  1. Добавьте библиотеку поддержки в свой проект (предполагаю, что вы используете Android Studio).

    Для этого добавьте эти строки в файл app.graddle (при условии, что ваш модуль называется app).

    dependencies {
        compile 'com.android.support:appcompat-v7:22.2.0'
    }
    

  1. Установите тему вашего приложения

    Эти строки должны быть добавлены в ваш файл styles.xml. Как видите, в этом стиле есть несколько предметов. Если вы хотите узнать, какому элементу они соответствуют, проверьте настройте строку состояния Android с помощью материала< /а>.

    colorAccent – это цвет, который вы хотите изменить в первую очередь.

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat">
        <item name="colorPrimary">@color/primary</item>
        <item name="colorPrimaryDark">@color/primaryDark</item>
        <item name="colorAccent">@color/accent</item>
        <item name="android:textColorPrimary">@color/textColorPrimary</item>
        <item name="android:windowBackground">@color/windowBackground</item>
        <item name="android:navigationBarColor">@color/navigationBarColor</item>
    </style>
    

    Вам также нужно будет установить тему приложения в манифесте Android.

    <application
        android:theme="@style/AppTheme" >
    
        ...
    
    </application>
    

  1. Измените с Activity / ActionBarActivity на AppCompatActivity в своих классах.

    public class MainActivity extends AppCompatActivity
    {
         ....
    }
    

    Возможно, вам потребуется изменить некоторые методы из-за AppCompatActivity. Посмотрите видео в первой ссылке, чтобы лучше понять это :)


  1. Измените свои виджеты на AppCompat.

    <LineareLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <android.support.v7.widget.AppCompatTextView
            android:id="@+id/text"
            android:text="@string/hello_world"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
        <android.support.v7.widget.AppCompatButton
            android:id="@+id/btn_start"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/btn_start" />
    
    </RelativeLayout>
    

И вуаля ! Вот и все готово :) Теперь вы можете легко изменить цвет акцента.

person WannaGetHigh    schedule 29.07.2015

Вы захотите использовать списки макетов состояний.

http://developer.android.com/reference/android/content/res/ColorStateList.html

Возможно, вам потребуется сделать один из них для каждого виджета, который будет иметь новый выбранный по умолчанию цвет.

person Michael    schedule 02.08.2012
comment
Я не хочу создавать новые выбранные цвета, я использовал этот тип инструмента для создания пользовательских кнопок. Но я просто хочу изменить цвет акцента. Позвольте мне добавить скриншот к моему вопросу, чтобы лучше объяснить - person jacosta; 02.08.2012
comment
@user1519069 Попробуйте следующее: groups.google.com/forum/#!topic/actionbarsherlock /qej6FbZPnAI - person Michael; 02.08.2012
comment
Похоже, этот человек пытался сделать то, что я хотел, но так и не решился - person jacosta; 02.08.2012
comment
Вы смотрели образец стилей, на который он ссылался? Вы также можете попробовать его оригинальное решение, так как возможно, что другой парень просто сделал что-то не так. - person Michael; 02.08.2012
comment
взгляните на второй ответ на этот вопрос: stackoverflow.com/questions/13257219/ - person Bruno Bieri; 29.07.2013