2015-05-22 5 views
-1

Я создаю приложение, предназначенное для детей с дислексией, и мне нужно разрешить пользователю изменять цвет фона экрана для таких вещей, как чтение книг и т. Д.Изменение цвета экрана с помощью выбора активности панели действий

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

Каков наилучший способ для этого?

Должен ли я создать XML-файл с цветами фона, которые я хочу, а затем назвать их? Или есть способ установить цвет фона в самом коде страницы?

Благодаря

ответ

1

Одним из способов вы можете решить это путем создания предпочтительных настроек, которые позволяют пользователю выбрать цвет. Затем вы можете сохранить цвет, который они выбрали внутри SharedPreferences, и использовать его во всем приложении, если пользователь не решит снова изменить цвет. Если вы не сохраните цвет, который они выбрали, тогда им придется менять цвет каждый раз, когда они открывают ваше приложение, что нежелательно. Вам не нужно создавать xml-файл или что-то в этом роде. Просто получите цветовой код, хранящийся внутри ваших SharedPreferences, а затем примените его к вашему макету внутри вашего метода onCreate(). Например:

RelativeLayout mRelativeLayout = (RelativeLayout)findViewById(R.id.relativeLayout); 
    SharedPreferences sharedPreferences = getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE); 
    String colorValue= sharedPreferences.getString("color", "#ffffff"); 
    int colorAsInt = Color.parseColor(colorValue); 
    mRelativeLayout.setBackgroundColor(colorAsInt); 
+0

приложения будет использоваться Mulitple пользователей на одном устройстве (для использования в школе), так что страница будет меняться в зависимости от потребностей ребенка, который использует его, поэтому этот метод ISN 't вполне уместно для того, что у меня есть на данный момент .... Тем не менее, есть профили, которые создаются для каждого ребенка, поэтому имеет смысл настроить предпочтения на странице своего профиля и цвет, переданный на страницы так что ему нужно только настроить один раз ... спасибо, это очень полезно – ShWhite

+0

В этом случае вы можете опустить часть SharedPreferences и создавать кнопки или значки, которые представляют цвета, которые вы хотите. Затем вы можете подключить к ним слушателей onClick() и изменить фон макета на цвет, связанный с нажатым значком. –

+0

Мог ли я настроить его как предпочтение при создании дочернего профиля, сохранить его в базе данных, передать его в соответствующее действие и затем соответствующим образом задать цвет фона? – ShWhite

0

Если вы хотите изменить цвет фона, возьмите ссылку View, в которой вы устанавливаете цвет по умолчанию.

View view=findViewById(R.id.backgroundView); 
view.setBackgroundColor(Color.parseColor("#987789")); 
view.setBackgroundColor(Color.BLUE); 
0

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

Смежные вопросы