Приложение-открытка "Happy Halloween"



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

Для этого установите:
  • Android Studio 
  • Java JDK 

Скачайте:
  • Любую забавную открытку из Интернета (вероятнее всего, если вы будете использовать картинку с высоким разрешением, то ваше приложение закроется выдав ошибку, но вы можете уменьшить ее размер использовав например этот сайт)
  • Любой понравившийся шрифт, например с этого сайта 1001fonts.com

Начнем.
Нашу картинку нужно сохранить в каталог drawable, который находится в каталоге-родителе res.


Далее нужно создать каталог с рессурсами assets, а в нем еще один каталог fonts. В него мы скопируем шрифт с расширением .ttf, который нужно скачать с выше указанного сайта или любого другого.

Для создания каталога assets нажмите правой кнопкой на корневом каталоге  app и выберете меню New -> Folder -> Assets Folder.

Для создания каталога fonts нажмите правой кнопкой на только что создавшемся каталоге assets и выберете New -> Directory. В каталог fonts скопируйте ваш шрифт.


В файл activity_main.xml скопируйте и вставьте следующую xml-разметку.


В TextView поменяйте текст на тот, который вам нужен, это конечно hard-coding, но в приложении открытка ничего страшного.

В ImageView поменяте значение атрибута android:src="@drawable/имя вашей картинки".

Для того чтобы подключить новый шрифт и применить его к TextView в MainActivity нужно прописать следующий код.

В методе onCreate() добавьте

TextView tx1 = (TextView)findViewById(R.id.text_view1);
TextView tx2 = (TextView)findViewById(R.id.text_view2);
Typeface halloween_font = Typeface.createFromAsset(getAssets(),  "fonts/halloween.ttf");
tx1.setTypeface(halloween_font);
tx2.setTypeface(halloween_font);

Полный код MainActivity.java будет выглядеть следующим образом
(имя пакета поменяйте на ваше!)

Вот и все. Удачи!

Odroid Screen Resolution Changer приложение для Odroid устройств


Представляю вашему вниманию мое новое приложение
"ODROID SCREEN RESOLUTION CHANGER"

  • ODROID Screen Resolution Changer приложение предназначеное только для ODROID устройств, использующих карты eMMC
  • ODROID Screen Resolution Changer позволяет быстро изменять разрешение экрана
  • Вы можете легко изменить разрешение экрана в один клик
  • Подобраны стандартные настройки для телевизоров подключенных через HDMI
  • Добавлена возможность пользовательской установки разрешения экрана для не стандартных дисплеев
  • Чтобы применить новый режим, потребуется Root или просто сделайте Power OFF/ON

Приложение можно скачать с Google Play

ODROID SCREEN RESOLUTION CHANGER

Как снять скриншот или видео с Android устройства


Установка adb
sudo apt-get install android-tools-adb android-tools-fastboot

Проверяем наше устройсто коммандой
adb devices

У вас должно появиться вот такое сообщение, если телефон подключен через USB кабель
List of devices attached 
10.0.3.192:5555 device

Усли у вас нет USB кабеля, то воспользуйтесь приложением Wi-Fi ADB

Снятие скриншота
adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png
adb shell rm /sdcard/screen.png

Снятие скриншота c несколькими активными устройствами
adb -s 192.168.0.57:5555 shell screencap -p /sdcard/screen.png
adb -s 192.168.0.57:5555 pull /sdcard/screen.png
adb -s 192.168.0.57:5555 shell rm /sdcard/screen.png
Нужно указать "-s" - параметр, а затем IP устройства "192.168.0.57" и номер порта "5555"

Запись видео с экрана телефона
adb shell screenrecord /sdcard/screen.mp4

Чтобы остановить запись используйте комбинацию клавиш CTRL + C.
Видео будет сохранено на SD карту. Чтобы его скопировать используйте следующую команду
adb pull /sdcard/screen.mp4

Если вас не устраивает качество видео, то его можно улучшить используя следующую команду
adb shell screenrecord –bit-rate 12000000 /sdcard/screen.mp4

Как прочитать файл с диска и поместить в строку


Рассмотрим несколько вариантов чтения файла с SD карты

Вариант 1
Этот способ более быстрый и позволяет быстро прочитать файл с SD карты, даже если он большого объема
import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; class ReadFile { static String readFile(String TARGET_SDCARD_PATH) { Scanner scanner; String text = ""; try { scanner = new Scanner( new File(TARGET_SDCARD_PATH) ); text = scanner.useDelimiter("\\A").next(); scanner.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } return text; } }

Вариант 2
Этот способ более медленный, но тоже рабочий. При чтении файла, большого объема с SD карты, было очень заметно как приложение подвисает
FileReader fr; String s; String totalStr = ""; try { fr = new FileReader(file_name); BufferedReader br = new BufferedReader(fr); while ((s = br.readLine()) != null) { totalStr += s + ("\n"); } br.close(); fr.close(); } catch (Exception e) { e.printStackTrace(); } return totalStr;

Как восстановить удаленный файл в Android Studio / IntelliJ



Недавно делал дизайн для своего нового приложения, потратил несколько часов и в итоге по ошибке удалил не тот файл.

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

Я уже было попращался с ним, но затем почитав help по Android Studio, в конце концов я нашел решение (рисунок с верху).

И так, как же его восстановить:
  • Перерключить окно в режим Project
  • Выделить папку в которой находился ваш файл, нажать по ней правой кнопкой мыши и выбрать в меню Local History -> Show History. В окне Show History вы найдете все действия, которые вы сделали за последние несколько дней.
  • Выбираем файл, который удалили
  • Нажимаем на кнопку Revert

Вот и все, оказывается все очень просто когда знаешь как. Удачи!


Android Studio опять обновили



Не успели выпустить Android Studio 2.2 CR, как снова обновили до версии 2.2.1

Обновили
  • JDK 
  • Gradle plugin 
  • Улучшили поддержку (C++), для разработки нативных приложений 
  • Исправили ошибки в системе безопасности

Скачать новую версию можно отсюда (ссылка)

Android Studio. Landscape Orientation. Куда исчезают новые созданные папки из ресурсов (res)?


В последнее время стало много вопросов, куда же исчезают новые созданные папки из ресурсов (res)?

Очень часто требуется создать Landscape Orintation, а именно, папку layout-land и XML-файл activity_main.xml, но как это сделать если папки не видно.

Проблема в том, что папка создается и видна в каталоге Windows или Linux, а в самой программе Android Studio ee нет. На самом деле она есть, далее я покажу как ее отобразить.

Сначала переключитесь в режим Project.
 
 

Чтобы создать новую подпапку в папке res, нужно выделить папку res, вызвать из нее контекстное меню и последовательно выбрать пункты меню New -> Android resource directory

Генераторы иконок (Android Icon Generators)



Android. Как создать логотип Google Play


google_play_logo


Создать Google Play логотип оказывается очень просто, Google уже об этом сам позаботился, для его создания нужно перейти в Badge Generator.

Нужно помнить о том, что любые изменения в логотипе не допускаются



В разделе Badge Generator нужно выбрать:

  • язык (Language)
  • тип файла цифровой или для печати на бумаге в формате EPS (Deliverable Type)
  • тип файла EPS или PNG (File Type)
Также можно сгенерировать HTML ссылку, если у вас есть приложение на Google Play, для размещения на вашем сайте. Для этого в поле Play Store URL укажите ваш URL и нажмите DOWNLOAD. После этого в отдельном окошке появится ваш код, который нужно просто поместить на вашем сайте.

Как передать значение типа Double в TextView



Как передать значение типа Double в TextView

Используя Double.toString:
Double result = number1/number2;
String stringdouble= Double.toString(result);
textView.setText(stringdouble));

Используя NumberFormat:
Double result = number1/number2;
NumberFormat nm = NumberFormat.getNumberInstance();
textView.setText(nm.format(result));

Используя String.valueof:
Double result = number1/number2;
String finalresult = String.valueof(result);
textView.setText(finalresult);

Используя конкатенацию со строкой:
Double result = number1/number2;
textView.setText(""+result);

Как исправить adb device offline





Вывод на экран если устройство подключено через USB
~$ adb devices
List of devices attached
0123456789ABCDEF    offline

Вывод на экран если устройство подключено через Wi-Fi
~$ adb devices
List of devices attached
192.168.1.2:5555        offline

a) Сначала проверим версию adb, должна быть 1.0.31 или 32, если нет,  то обновите SDK или adb

    Выполните следующую команду:
        ~$ adb version
        Android Debug Bridge version 1.0.31

    Выполните следующую команду:
    ~$ android update adb

b) Перейдите к "Development options" в настройках вашего телефона и нажмите "Revoke USB debugging authoriz.." Как активировать "Development options" читаем тут

Wi-Fi ADB (Root / No Root) приложение для Android





Представляю вашему вниманию моё приложение Wi-Fi ADB для Android устройств.

Для чего оно нужно?

Если вы разрабатываете приложения под Android, то не раз наверное сталкивались с тем, что USB кабель был не рабочим или у вас его не оказалось под рукой. Wi-Fi ADB поможет вам подключить ваше устройство к персональному компьютеру через Wi-Fi.

В его состав входит:

Быстрый доступ к Wi-Fi точкам доступа
Индикатор подключения к Wi-Fi сети
Автоматическое определение IP-адреса
Всплывающее уведомления о состоянии сети
Быстрый доступ к инструментам разработчика
Поддержка Landscape и Portrait ориентации экрана
Активация ADB(Android Debug Bridge) как в режиме Root, так и без
Поддержка Android устройств начиная с версии Android 2.3.3


Приложение можно скачать с Google Play 

https://play.google.com/store/apps/details?id=vswebschool.blogspot.com.wifiadb

Android Studio Inotify Watches Limit



Для IDE, очень важно, чтобы быть в курсе каких-либо внешних изменений в файлах с которыми она работает. Например, она постояно отслеживает изменения, сделанные в VCS, или в build tools, или code generators и т.д.. По этой причине платформа IntelliJ раскручивает фоновый процесс для мониторинга таких изменений. Метод, который она использует зависит от платформы, и на Linux, это объект Inotify.

Inotify требует "watch handle", который должен быть установлен для каждого каталога в проекте. К сожалению, в "watch handle", дефолтного значения не достаточно для сканирования умеренных размеров проектов и по достижению этого предела, заставляет платформу IntelliJ вернуться к рекурсивному сканированию дерева каталогов.

Для предотвращения этой ситуации рекомендуется увеличить лимит "watch handle" (до, скажем, 512K):

1. Добавьте следующую строку либо в файл /etc/sysctl.conf либо в новый файл ##-sysctl.conf под /etc/sysctl.d/ дерикторией, где ## означает любой номер от 01 до 99:

fs.inotify.max_user_watches = 524288

2. Затем запустите эту команду, чтобы применить изменения:

sudo sysctl -p --system

И не забудьте перезапустить IDE.

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

Мой файл конфигурации: 10-jetbrains.conf, поместить в /etc/sysctl.d/