Всем привет, Вы на канале компьютерапия и сегодня в этом видео я покажу вам, как сделать простенькое обучающее приложение для отображения аккордов для гитары на вашем мобильном устройстве.
Не так давно я решил заняться изучением игре на гитаре и если с «В траве сидел кузнечик» и игрой квинтами всё-всё пока идёт более-менее, то запоминание аккордов пока происходит сложно.
Я решил пойти своим путём и набросать небольшое андроид приложение, которое будет показывать картинки с примерами аккордов в случайном порядке.
Так будет выглядеть оно на телефоне, просто запускается, делается клик по экрану, я допустим сижу с гитарой и повторяю увиденное на картинке, ставлю пальца на те лады и струны и можно пробовать играть.
Android приложение для начинающих гитаристов, пишем андроид приложение с аккордами для гитары
В общем задумка такая, на просторах интернета я нашёл вот такую картинку с аккордами.
Далее в графическом редакторе, можно использовать любой – хоть фотошоп, хоть паинт, я повырезал от неё вот эти части, и меня получилась 21 картинка.
Если вы будете пытаться повторить подобный пример как у меня, в вашем случае это могут быть не аккорды, а к примеру, скриншоты какие-то, картинки из мультфильмов, которые можно добавить в приложение и соответственно показывать детям. Пусть смотрят, пусть клацают, пусть думают, что это мультик.
Создадим наш проект, запустив Android Studio, после обновления у меня на заставке появилась вот такая вот Лисичка, чем-то напоминает Firefox…
Создадим новый проект, empty activity, назовем проект accords – аккорды.
Интересно что в этой версии изменился шрифт, он стал крупнее, я надеюсь всем будет всё видно.
И вот через некоторое время после всех моих обновлений и синхронизаций наконец-то создался новый проект.
Перейдём, скажем так в графическую часть, нам нужно будет заменить надпись textview на изображение imageview
, в принципе мы можем переделать textview в imageview
, для отображения картинок, изображений которое мы поместим в папку drawable.
Предлагаю попробовать вариант, удалим textview, через код удалить гораздо проще.
Нам нужно будет сюда добавить imageview
. Вот мне не совсем ясна мысль, что я должен вот здесь делать, совсем эта идея мне не нравится, не выбрав источник и нажав ок – imageview в активность не добавляется…
Я не понимаю, зачем так сделано, добавляем так уж и быть, пусть будет Аватарс, уберём вот эту запись, она 300 лет тут не надо.
Так, Android id у нас есть, это хорошо, у нас высоту и ширину установим не врапконтент, а на всю катушку Матч Перент, эти строки можно вообще убрать, они тут большому счёту и не нужны.
Картинка у нас будет во всю ширину, для масштабирования ещё добавим здесь один параметр
Так теперь нам нужно будет вот сюда добавить изображения, я приготовил картинки, вы помните, я ранее показывал, ну как порезал, так порезал, поэтому тут не обессудьте, как говорится делал для себя, тут часть картинок со смещением получилась, относительно других, нарезать можно в чем угодно, хоть в паинт, но хочу обратить Ваше внимание на то, что в именах файлов не нужно использовать большие буквы, по крайней мере первая буква имени файла должна быть маленькая.
И нам теперь нужно получить список всех файлов, так как мы будем использовать его в массиве.
Давайте добавим изображения сюда в папку, но не перемещение, а копированием, перетащим файлы с нажатым Control, 21 картинка добавлена в папку drawable
. В исходной папке у нас картинки остались.
Сейчас давайте в коде напишем пару переменных, объявим их до onCreate,
типImageView
переменная imageView
, тип Random
переменная r
, и массив Integer[]
с именем images
, в него мы поместим название наших картинок.В onCreate напишем
ниже у нас пойдёт обработчик нажатия на изображение.Нам нужно будет в этот массив вставить значения типа R.drawable. и имя файла изображения без расширения, обозначающего конкретную ноту.
А чтоб не делать это всё вручную, в таком вот виде, я покажу как быстро получить список файлов, не через консоль или иным способом, очень даже быстро.
Мы копируем путь к папке с изображениями, открываем любой браузер, Chrome например, и вставляем сюда наш путь, и вот мы получили список файлов, снизу вверх мы копируем весь текст, открываем Excel, делаем специальную вставку, прошу прощения, можно попробовать, так вот, так не так, одну секунду.
Вот так, текст в кодировке Unicode, избавляемся от лишнего, добавляем несколько пустых столбцов, нажав control+. Нужно избавиться от расширения файлов, выделяем его, копируем .jpg, нажимаем горячую клавишу Control+H, найти и заменить, вставляем сюда jpg с точкой, заменить оставляем пусто.
Заменяем, получили в итоге, такой перечень, список наших файлов. Теперь нам нужно будет объединить часть «R.drawable.», ставим её сюда, скопируем или протащим.
Какой-то цвет текста получился мрачноватый, темноватый, JetBrains Mono стиль шрифта.
Объединим с названием файлов, в соседней ячейке нужна будет запятая, протянем запятую, я думаю это быстрее будет, чем писать вручную все эти записи в массив.
Тем более у вас их может быть не 21, а может быть и 121. Запятую поставили везде кроме последней ячейки. Теперь пишем формулу: равно ячейка с текстом «R.drawable.», символ ampersand, ячейка с именем файла, снова символ ampersand и ячейка с запятой.
Протягиваем нашу формулу, либо копируем и вставляем, и вот что мы получили, вот такую вот конструкция. ЕЕ копируем и вставляем, в массив вместо вот этого текста.
Обязательно кто-то скажет в комментариях, что нужно файлы в assets закидывать, нужно ещё как-то по-другому сделать, но я показываю простой пример, который работает, и допустить ошибку в нем – это нужно очень постараться.
И наконец, нам осталось вывести по клику в изображение наши картинки, в случайном порядке.
Напишем небольшой обработчик нажатия на imageview
, подтяну текст, чтобы было все видно:
Пишем далее одну строчку:
Обращаемся к нашему массиву images, не забываем про квадратные скобки, r.nextInt(images.length)
, будет генерировать случайное значение.
То есть мы будем при каждом нажатии на imageview
, нашу картинку, вызывайте генератор случайного числа, исходя из массива и это число которое у нас определено, исходя из этого массива, получаем число массива и сюда у нас будут присваиваться из-за того массива одна из этих строк, либо эта, либо эта, либо эта, либо ещё раз вот эта, возможны повторы.
Ну что ж давайте пробовать, что у нас получится, посмотрим, при запуске на экране ничего нет, в принципе при загрузке можно установить картинку с текстом – Нажми меня, но пока тут белый экран, ничего нет, до первого нажатия на экран.
В эмуляторе происходит тоже самое, что вы видели в начале ролика, некоторые картинки со смещением, как нарезал, так нарезал, в качестве прототипа и так сойдет.
По клику на экран вызывается картинка с расшифровкой аккорда, на мой взгляд это удобней для новичков, чем допустим распечатывать это, все мелкое, смотреть и сбиваться глазами, я считаю, что вот в таком виде, гораздо удобнее и почти всегда с собой.
В принципе всё что вам осталось это закинуть приложение на телефон, по этому примеру можно для себя найти различное применение, дело может не ограничивается только нотами, можете что угодно для себя написать, хоть готовиться к экзаменам, хоть слайд шоу устроить для детей.
Но правда тут смена картинке происходит только по нажатию, можно доработать приложение, добавить меню с пунктами, вызывать выпадающее меню и можно запускать слайд шоу по таймеру, где там через минуту или через полминуты будут меняться все изображения. Есть над чем еще поработать.
Cкачать архив для ознакомления - Android приложение для начинающих гитаристов, пишем андроид приложение с аккордами для гитары v.1:
Полный текст MainActivity.java
Android приложение для начинающих гитаристов, пишем андроид приложение с аккордами для гитары
Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!
Связанные статьи
Предыдущие статьи
- Android Studio: получение JSON из базы данных с помощью PHP. Урок № 4 - 21/02/2021 07:12
- Android Studio: получение JSON в ListView с сервера на хостинге. Урок № 3 - 04/12/2020 21:46
- Android Studio: получение JSON в ListView и ArrayAdapter. Урок № 2 - 04/12/2020 20:39
- Android Studio: получение JSON в RecyclerView и CardView. Урок № 1 - 04/12/2020 19:40
- JS база данных и ANDROID STUDIO. Часть 3 - 15/12/2019 06:40
- Уведомления - Notifications в Android Studio - 16/04/2019 18:14
- Блютуз подключение в Android (проект для Arduino). Часть 1. - 12/04/2019 17:14
- Установка android studio и настройка SDK на VirtualBox с нуля - 19/01/2019 11:52
- Android Studio Как сделать виджет - игру Орел или решка - 08/04/2018 19:38
- Android Studio: Как сделать боковое меню с помощью NavigationDrawer - 05/04/2018 20:35
- Android Menu, как сделать меню андроид - 08/03/2018 14:44
- Создание подписанного приложения для android. Generate Signed APK. - 17/02/2018 09:50
- Android and Jsoup. Парсим вебсайт на вордпрессе. Расписание уроков - часть 3 - 15/01/2018 18:25
- Создание расписания уроков для андроид устройств. Часть 2. База данных SQLITE и фрагменты - 13/12/2017 19:49
- Создание расписания уроков для андроид устройств. Array Adapter для фрагментов. - 06/12/2017 15:07
- Создание фрагментов и использование вкладок для Android - 19/11/2017 05:16
- SplashScreen в Android: пишем заставку - 18/08/2017 19:06
- Диалог в андроид: пишем приложение в Android Studio - 13/08/2017 11:27
- Intent - Android приложение с несколькими Activity - 17/06/2017 17:05
- Создание списка ListView и ArrayAdapter в Android Studio - 09/06/2017 20:38