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

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

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

 Pressed  Checked
 True  True
 True  False
 False  True
 False  False

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

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

Пример:

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

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

android:button="@drawable/button_radio"

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

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

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

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

С чего же начать… Это еще одна статья, как сделать что-то в Android’е так, что бы было не стандартно или даже красиво :)

Я показывал (достаточно кратко) как кастомизировать кнопки и сделать свой ListView, теперь настало время рассказать как изменить внешний вид ProgressBar.

Continue reading

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

Привет!

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

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

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

Continue reading

Windows 8.1. Проблемы после установки

Ну да, траблы… Как-то я не совсем с начала начал. Итак, ура-ура, Windows 8.1 вчера появилось в релизе для лицензионных пользователей и доступна через магазин приложений Windows. Штука по мне так хорошая (я сейчас о 8.1), так что задумал я обновиться. Вчера сделать этого не получилось по простой причине — нет времени, ну совсем нет времени. Сегодня вот добрался. Решил обновить всё.

Процесс обновления занимает достаточно приличное время, не засекал, но чай выпить успел и не один раз :)

На одной машине все прошло хорошо — установилось, работает. На второй же как-то криво все встало. Ругается на какой-то драйвер Logitech, который внезапно пропал, а в системе ничего от Logitech то и не было — разберусь потом. KIS 2014 решил попадать немножко,  а дампы почему-то отправить не в состоянии сам. Ну и самое интересное… Я заметил, что включилась встроенная графика Intel… Не понял! Залез в диспетчер устройств… Что я вижу? Intel Graphics работает, а AMD что-то там отключено. Причина мол не совпал драйвер. Пытаюсь решить проблему из диспетчера устройств просто попыткой обновить драйвер, а бесполезно, говорит все и так у вас хорошо, а то что устройство не работает никого не волнует.

Лезу на сайт AMD. Там есть такая прекрасная вещь как AutoDetect Drivers. Вроде как это маленькая программа нужна что бы определить какие нужны драйвера в систему. Поставил — не работает она совсем (везде где не ставил кстати не работает!) Ок, пошел… скачал другой инструмент — определятор именно для мобильной графики. Определить определила, файл предложила сохранить и вылетела с ошибкой! Ну что за глюченая программа то? Взял последний Beta-драйвер, но проблему это не решило. Буду воевать дальше.

Bash: Среднее арифметическое.

Нужно посчитать среднее арифметическое, написав скрипт на Bash.

Для передачи чисел для вычислений использую аргументы скрипта.

#! /bin/sh
i=0
sum=0
for an_arg in "$@" ; do
  sum=$(($sum + ${an_arg}))
  i=$(($i+1))
done
expr $sum / $i

Пример тестового запуска:

sh avg.sh 1 2 3 4 5

ASP: Печать на форму и чтение параметров

Совсем уже простая задача: Сделать страничку, с использованием ASP и VBScript, на которой будет форма (тестовое поле и кнопка). По Клику на кнопку на страницу вывести то, что было написано в тестовом поле.

Код:

<HTML>
<HEAD><TITLE>TEST</TITLE>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
</head>
<body>
<form action="" method="get">
<input name="Text1" type="text">
<input type="submit" value="Отправить">
</form>
<SCRIPT LANGUAGE="vbscript" RUNAT="SERVER" type="text/vbscript">
Response.Write(Request.QueryString("Text1"))
</SCRIPT>
</body>

Идея простая. Берем форму, а дальше к ней пишем скриптик на языке VBScript (Да, знаю, штука гадкая, но заставили). Внимание следует обратить на тег RUNAT=»SERVER» — это значит, что этот скрипт должен исполняться на сервере.

Внутри его: есть объект Response (ответ) и у него метод Write, который умеет писать на страницу.  Request.QueryString позволяет получить значение переданного параметра. в качестве параметра принимает строку, в которой содержится имя элемента формы — в нашем случае это Text1. Совместив 2 функции можно выполнить задание.

Для работы примера потребуется IIS со включенной поддержкой ASP.

T-SQL: Таблицы Inserted/Deleted

Полезная такая шпаргалка:

Изменения во временных таблицах при срабатывании триггеров в T-SQL:

Operation Table Inserted Table Deleted
Min Rows Max Rows Min Rows Max Rows
Insert 1 0 0
Update 1 N 1 N
Delete 0 0 1 N

Где N — количество строк в таблице, к которой привязан триггер

Java: Доступ к членам класса

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

 Описание класса Private Без модификатора Protected Public
 Один и тот же класс  Да  Да  Да  Да
 Подкласс класса этого же пакета  Нет  Да  Да  Да
 Класс этого же пакета не являющийся подклассом  Нет  Да  Да  Да
 Подкласс класса другого пакета  Нет  Нет  Да  Да
 Класс другого пакета, не являющийся подклассом класса данного пакета  Нет  Нет  Нет  Да

 

BASH: Простой калькулятор

Простой калькулятор на Bash. Вводится 2 числа с клавиатуры, действие и производится вычисление при помощи функции expr().

Есть проверка на недопустимость деления на 0.

echo "enter first value:"
read x
echo "enter second value"
read y
echo "enter action symbol"
read act

case $act in
"+") echo " $x + $y ="  $(expr $y + $x);;
"-") echo "$x - $y ="   $(expr $x - $y);;
"/") if [ $y -eq 0 ]; then
       echo "error: delimiter by zero";
     else
       echo " $x / $y =" $(expr  $x / $y);
     fi;;
"*") echo " $x * $y =" $(expr  $x \* $y);;
*) echo "command is unknown!"
esac

C, Unix, OPEN(),CLOSE(),READ(), WRITE(): Копирование файлов

Начался новый предмет, новые лабы.

Задачка примерно такая: Есть *nix-операционная система. В ней написать приложение на C, которое умеет копировать файлы при помощи системных вызовов Open(), Close(), Read(), Write();

В моем случае в качестве операционной системы использую Ubuntu 12.04

Continue reading