Pull to refresh

Метро.Просто схема

Reading time 3 min
Views 14K

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

Не спорю, это отличное приложение для курьеров, гостей и определённой категории пассажиров, которым удобны автоматическое определение местоположения, поиск станций, вычисление времени в пути и т.п.
Но коренные москвичи, которые всю сознательную жизнь добираются на метро со своих спальных районов на работу, в гости, на свидание и футбол, приблизительно знают расположение станций и пользуются схемой только для того, чтобы освежить память и уточнить, где лучше сделать пересадку. Всё!
Что происходит с Яндекс.Метро. Я запускаю приложение и первым делом оно начинает искать обновления. Зачем? Вроде станции метро открываются не каждый час, к чему такая спешка. Ладно, пара секунд прошла. Далее запускается программа. Одно неосторожное касание пальцем и на экране всплывают какие-то кнопки: Показать на карте (???), Название станции, Отсюда, Сюда. Напоминает поведение некоторых сайтов, обвешанных рекламой и всплывающими окнами. При этом, оказывается, они ещё что-то отсылают на свои сервера, забирая ресурсы у моего устройства.

Осознав, что использую 1% от всей функциональности хорошего приложения, наткнулся на несколько комментариев гиков, которые просто сфоткали схему и пользуются ей. Вспомнил, что до появления Яндекс.Метро, а может ещё раньше, на Windows Mobile 5.0, я поступал также. Меня не устраивала только одна деталь — искать схему метро в Галерее среди множества картинок не хотелось.
И тогда я решил написать свою простенькую программу с незамысловатым названием Метро.Просто схема для Android. Самое смешное, мне даже не пришлось писать код для неё. Копировать-вставить. От создания проекта до размещения приложения в Google Play прошло около 30 минут.
Схему метро и логотип в векторе я взял на сайте Студии А.Лебедева. Про схему там явно написано — бери и пользуйся. Про логотип условия пользования не нашёл. Написал лично Артемию, благо он свою электронную почту не скрывает. Минут через пятнадцать получил ответ — можно.
Сконвертировал векторные изображения в PNG. На сайте Android Asset Studio создал значки. Запустил проект и разместил значки в нужных подпапках. Далее выбрал тему без заголовка, чтобы увеличить полезное пространство.
Для размещения картинок в Android используется компонент ImageView. Но из коробки он не поддерживает масштабирование и обработку жестов. Но в своё время я сохранил в закладках ссылку на библиотеку TouchImageView. Вчера, просматривая свои закладки, я увидел позабытую ссылку и подумал, что надо бы её изучить. Сегодня решил проверить, а не подойдёт ли она к моему приложению. Библиотека — это было слишком громко сказано. Достаточно скопировать класс, расширяющий ImageView, и вставить в своей проект.
Размещаем компонент в разметке
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

    <ru.alexanderklimov.metrosimpeschema.TouchImageView
        android:id="@+id/imageViewSchema"
        android:src="@drawable/moscow_metro"
	    android:layout_width="match_parent"
	    android:layout_height="match_parent" />

</FrameLayout>

Всё! Запускаем программу и любуемся. Компонент из коробки поддерживает касания двумя пальцами, двойной тап и движение картинки под пальцем. Всё тоже самое, что и Яндекс.карты.
Проверил на стареньком Samsung S2, затем на планшете и новом телефоне. Меня устраивает полностью. Скриншоты сильно сжал для экономии, поэтому они немного невзрачные.




Если кому-то нужно, адрес в Google Play — Метро.Просто схема.

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

Upd. Хабр не позволяет писать две статьи подряд в рубрике «Я пиарюсь». Поэтому продолжение пришлось публиковать в своём блоге.
Метро.Москва.Часть вторая
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+24
Comments 60
Comments Comments 60

Articles