Android. Вопрос о контролах?

Недавно начал разрабатывать под Android. Несколько раз встречал такого рода контролы(см. картинку).

bc8e31c45aab7eaf8c64c2ac49b710c4.png


1. Нажимаем на Layout в любом месте

2. Сверху и снизу появляются небольшие бары.

3. При нажатии, например, на Шрифты появляется окошко для редактирования шрифтов. Выйти с него можно только кнопкой Назад.


Это обычное меню? Как сделать такое же, но, например, сверху(на сколько я понимаю стандартное появляется только снизу) малой кровью?


P.S. фотографиями потому, что телефон без рута и кабеля к телефону пока нету, чтобы сделать нормальные скриншоты
  • Вопрос задан
  • 3627 просмотров
Решения вопроса 1
@nicolausYes Автор вопроса
Спасибо за ответы!

kwikpik, да, это кастомные элементы.
kwikpik, tangro, хорошая идея. Но если делать отдельную активити, смогу ли я реагировать на изменения в активити, на которой она вызвана(например, при изменении размера шрифта или цвета неплохо бы сразу видеть изменения)?

Декомпилировал 2 приложения, в одном это оказался какой-то виджет, а в другом сделано весьма просто — это FrameLayout с android:layout_gravity=«bottom». При нажатии(на активити, кнопку) его видимость можно менять — View.VISIBLE или View.GONE. Изменения шрифтов и т.п. реализовано с помощью диалогов.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
kwikpik
@kwikpik
Developer
Думаю это кастомные элементы
Ответ написан
@tangro
Как на счёт сделать прозрачную активити, а на неё в нужных местах (хоть сверху, хоть снизу) нацепить непрозрачные кнопки?
Ответ написан
Комментировать
ara89
@ara89
Бары сверху и снизу это ActionBar. Т.к. ActionBar появился с 3 андроида, то тут вполне может быть ActionBarSherlock. (порт ActionBara на все версии)
Ответ написан
@babay88
а что мешает просто сделать вьюхи?
например, кутовая вьюха активити примерно такая:
<RelativeLayout xmlns:android=«schemas.android.com/apk/res/android»
android:layout_width=«fill_parent»
android:layout_height=«fill_parent»
android:id="@+id/root"
>
… тут весь контент вьюхи. можно использовать android:layout_above android:layout_below итд — для позиционирования элементов. ну или android:layout_align_parent_top, android:layout_center_horizontal
итд

</Relative layout>

далее, в отдельном файле делаем вьюху — наше «меню».
когда нужно — добавляем её к нашей рутовой вьюхе.
сначала подгружаем:
View v = View.inflate(getContext(), R.layout.partial_buttons, null)

в качестве LayoutParams используем что-нить такое:
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);

далее, добавляей рутовой вьюхе нашу менюшку
((ViewGroup)findViewById(R.id.root)).addView(v, lp)

когда она нам больше не нужна — просто делаем ей
v.setVisibility(View.GONE) — таким образом, она будет не видна, но всё еще в памяти — не надо будет в следующий раз подгружать заново.

это если делать ручками. ничего сложного.
но можно использовать и библиотеки. ибо — почему бы и нет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы