Реклама →
Songsterr — теперь на Android
C полгода назад songsterr писали об итогах трех лет. А ныне команда рада оповестить Хабрахабр о выходе приложения для Android!
— Доступ к огромному каталогу табулатур(400 000)
— Наборы инструментов для каждой песни. Гитары, басс, ударные, голос и прочее
— Список «Популярные»
— Возможность поиска песни по имени исполнителя или названию
В планах добавить проигрывание музыки, избранное и много-многое другое. Следите за новостями тут, в facebook и twitter.
Скачать с маркета:
QR:
1. в 2.3.1 появилась возможность использовать резиновые списки в том смысле, что список оттягивается и виден background, как это сделано в iPhone. Чтобы добавить такой эффект к своему ListView, надо сделать подкласс и переопределить один метод:
2. Опять же в 2.3.1 появилась возможность указания обратной ориентации для экрана, на основе сигнала сенсора. Это удобно, если вам хочется, чтобы одна из activity была только в альбомной ориентации, но при этом зависела от сенсора.
screenOrientation=«sensorLandscape». Будьте внимательны, потому что на 2.2 этот атрибут ведет себя не как landscape, а как отсутствие атрибута напрочь!
3. Для того, чтобы в TextView, являющейся частью записи в ListView менялось состояние в соответствии с выбором и кликом на этот элемент( selected=«true» или clicked=«true» ) нужно использовать аттрибут dublicateParentState. Иначе бэкграунд у элемента будет меняться, а цвет текста — нет.
С моментами пока что все! Удачного изучения игры своих любимых песен!
Также мы будем рады любой конструктивной критике и высказанным пожеланиям.
Спасибо!
P.S.: Хотите работать в нашей команде? Пишите нам на hq@songsterr.com
Основная функциональность
— Доступ к огромному каталогу табулатур(400 000)
— Наборы инструментов для каждой песни. Гитары, басс, ударные, голос и прочее
— Список «Популярные»
— Возможность поиска песни по имени исполнителя или названию
В планах добавить проигрывание музыки, избранное и много-многое другое. Следите за новостями тут, в facebook и twitter.
Скачать с маркета:
QR:
Технические моменты
1. в 2.3.1 появилась возможность использовать резиновые списки в том смысле, что список оттягивается и виден background, как это сделано в iPhone. Чтобы добавить такой эффект к своему ListView, надо сделать подкласс и переопределить один метод:
public class BounceListView extends ListView {
private int maxYOverscroll;
private static final float MAX_Y_OVERSCROLL_DISTANCE = 200;
public BounceListView(Context context) {
super(context);
initBounceListView();
}
public BounceListView(Context context, AttributeSet attrs) {
super(context, attrs);
initBounceListView();
}
public BounceListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initBounceListView();
}
private void initBounceListView() {
//get the density of the screen and do some maths with it on the max overscroll distance
//variable so that you get similar behaviors no matter what the screen size
final DisplayMetrics metrics = getContext().getResources().getDisplayMetrics();
final float density = metrics.density;
maxYOverscroll = (int) (density * MAX_Y_OVERSCROLL_DISTANCE);
}
@Override
protected boolean overScrollBy(int deltaX, int deltaY,
int scrollX, int scrollY,
int scrollRangeX, int scrollRangeY,
int maxOverScrollX, int maxOverScrollY,
boolean isTouchEvent) {
//This is where the magic happens, we have replaced the incoming maxOverScrollY with our own custom variable maxYOverscroll;
return super.overScrollBy(deltaX, deltaY,
scrollX, scrollY, scrollRangeX,
scrollRangeY, maxOverScrollX,
maxYOverscroll, isTouchEvent);
}
2. Опять же в 2.3.1 появилась возможность указания обратной ориентации для экрана, на основе сигнала сенсора. Это удобно, если вам хочется, чтобы одна из activity была только в альбомной ориентации, но при этом зависела от сенсора.
screenOrientation=«sensorLandscape». Будьте внимательны, потому что на 2.2 этот атрибут ведет себя не как landscape, а как отсутствие атрибута напрочь!
3. Для того, чтобы в TextView, являющейся частью записи в ListView менялось состояние в соответствии с выбором и кликом на этот элемент( selected=«true» или clicked=«true» ) нужно использовать аттрибут dublicateParentState. Иначе бэкграунд у элемента будет меняться, а цвет текста — нет.
С моментами пока что все! Удачного изучения игры своих любимых песен!
Также мы будем рады любой конструктивной критике и высказанным пожеланиям.
Спасибо!
P.S.: Хотите работать в нашей команде? Пишите нам на hq@songsterr.com
27.01.2012 09:46+0400