Кастомизация RadioButton в Android

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

Что бы создать кастомный стиль для RadioButton нужно создать drawable-ресурс, содержащий 4 иконки:

 Pressed  Checked
 True  True
 True  False
 False  True
 False  False

Поместите ваши изображения в res\drawable\ Далее нужно создать описание для этих ресурсов. Селектор.

Для этого нужно создать файл, например res\drawable\button_radio.xml в втором и будут описано, когда какую картинку размещать.

Пример:

1
2
3
4
5
6
7
8
9
10
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_checked="true" android:state_pressed="false"
      android:drawable="@drawable/radio_on"/>
  <item android:state_checked="false" android:state_pressed="false"
      android:drawable="@drawable/radio_off"/>
  <item android:state_checked="true" android:state_pressed="true"
      android:drawable="@drawable/radio_on_pressed"/>
  <item android:state_checked="false" android:state_pressed="true"
      android:drawable="@drawable/radio_off_pressed"/>
</selector>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_checked="true" android:state_pressed="false"
      android:drawable="@drawable/radio_on"/>
  <item android:state_checked="false" android:state_pressed="false"
      android:drawable="@drawable/radio_off"/>
  <item android:state_checked="true" android:state_pressed="true"
      android:drawable="@drawable/radio_on_pressed"/>
  <item android:state_checked="false" android:state_pressed="true"
      android:drawable="@drawable/radio_off_pressed"/>
</selector>

Подключить его из разметки можно при помощи следующей строки:

1
android:button="@drawable/button_radio"
android:button="@drawable/button_radio"

А из JAVA кода можно так:

1
2
RadioButton newRadioButton = new RadioButton(this);
newRadioButton.setButtonDrawable(R.drawable.radio_button);
RadioButton newRadioButton = new RadioButton(this);
newRadioButton.setButtonDrawable(R.drawable.radio_button);

В коде выше описаны не все атрибуты.

Android: Кастомизация кнопок (image)

Привет!

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

  • С использованием стандартных форм Shapes
  • С использованием изображений, которые накладываются на кнопку.

Сейчас я расскажу про второй способ, так как я столкнулся с проблемой — при использовании стандартных примитивов, невозможно создать составную форму, можно только выбрать из существующих форм, а они весьма ограниченны. Если нужно что-то более сложное — тогда только второй вариант, но мне кажется я слишком непонятное нечто пишу, так что к делу.

Continue reading

Настройка listview items с собственным ArrayAdapter


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

Android_Custom_ListView_ArrayAdapter

Continue reading

C#: Чтение XML-документа (XmlDocument)

На сегодняшний день XML является одним из наиболее распространенных (наряду с JSON) форматов для передачи данных. Сегодня я хотел бы рассказать о том, как можно читать XML-документы штатными средствами C#.

Continue reading