На моем устройстве Android 2.2.2 галерея выглядит очень красиво.Что я хотел бы сделать в своем собственном приложении, так это нажать кнопку и затем показать меню, которое выглядит следующим образом:
Использует ли это какие-либо стандартные темы / стили для Android?Кто-нибудь знает пример кода для такого меню?
Редактировать: Я понял, что можно подражать этому меню с помощью диалога.Чтобы упростить задачу, в этом примере я не использую ListView, а просто одну запись TextView для диалога:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#FFF"
android:padding="10dp"
/>
</LinearLayout>
Отображение диалога при нажатии кнопки:
Dialog dialog = new Dialog(MyActivity.this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.custom_dialog);
TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText("Test option 1");
WindowManager.LayoutParams WMLP = dialog.getWindow().getAttributes();
WMLP.gravity = (Gravity.BOTTOM | Gravity.LEFT);
WMLP.x = 0;
WMLP.y = 0;
dialog.getWindow().setAttributes(WMLP);
dialog.show();
Это создает диалог, который приближается к меню на картинке.У меня все еще есть две проблемы:
1) Как я могу нарисовать этот маленький треугольник в нижней части диалогового окна, как это сделано на картинке выше?
2) Кнопка, котораяПредполагается, что диалоговое окно находится горизонтально в середине нижней панели кнопок.Поэтому, когда я нажимаю его, диалог должен отображаться прямо над этой кнопкой.Я хотел бы сделать следующее:
WMLP.x = middleButton.getLeft() + (middleButton.getWidth() / 2) - dialog.getWindow().getDecorView().getPaddingLeft() - (WMLP.width / 2);
Проблема в том, что WMLP.width равен -2.Я предполагаю, что причина в том, что ширина макета установлена на «wrap_content» (то есть -2), а фактическая ширина в данный момент неизвестна.Итак, как я могу определить ширину диалога, чтобы я мог расположить его концентрически над другим видом?
Обновление: я наконец-то нашел отличный источник для такого диалога: http://www.londatiga.net/it/how-to-create-quickaction-dialog-in-android/
Это именно то, что я хотел, и сейчас я использую это в своем приложении.