Есть ли такие кнопки, встроенные в Android, которые могут использовать разработчики? - PullRequest
0 голосов
/ 19 ноября 2010

Я хочу попробовать получить красивые кнопки, которые будут работать аналогично вкладкам внизу моего приложения, но мне интересно, есть ли встроенные кнопки, подобные этой:

image

Это сделает навигацию лучше, а разработку станет намного проще и быстрее, если они будут.

Ответы [ 2 ]

2 голосов
/ 19 ноября 2010

Ваш пример снимка экрана показывает в основном нетронутую версию Android 2.2. Поскольку это открытый исходный код, вы можете посмотреть, как это делается. Вот файл макета, который он использует.

Обратите внимание на RelativeLayout внизу, содержащий три кнопки «hotseat». Каждый из них использует собственный стиль для получения внешнего вида, эти стили определены здесь .

0 голосов
/ 19 ноября 2010

На картинке изображен HTC Sense Launcher.Это дополнение, а не часть базовой ОС Android.

Кстати, сделать прозрачную кнопку, подобную этой, легко.Дайте мне знать, если вам нужна помощь с этим.

Обновление:

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

dialog = new Dialog(activityRequestingProgressDialog);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.progress_upload);
progressBar = (ProgressBar) dialog.findViewById(R.id.progressBar);
progressText = (TextView) dialog.findViewById(R.id.progressText);
progressText.setText("0 %");
progressText.setTextSize(18);
Button buttonCancel = (Button) dialog.findViewById(R.id.btnCancel);
buttonCancel.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        cancelProgressDialog();
        }
});
Window window = dialog.getWindow();
window.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
                    WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
window.setGravity(Gravity.BOTTOM);
dialog.show();

И расположение диалога:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/progressDialog"
          android:orientation="vertical"
          android:layout_height="wrap_content"
          android:layout_width="wrap_content"
          android:layout_centerVertical="true">

<TextView android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_gravity="center"
          android:textSize="18sp"
          android:padding="10dp"
          android:text="@string/progress_title"/>

<LinearLayout android:id="@+id/progressDialog"
              android:orientation="horizontal"
              android:layout_height="wrap_content"
              android:layout_width="wrap_content"
              android:padding="10dp"
              android:layout_centerVertical="true">

    <ProgressBar android:id="@+id/progressBar"
                 android:layout_width="150dp"
                 android:layout_height="34dp"
                 android:paddingRight="10dp"
                 android:max="100"
                 android:progress="0"
                 android:fadingEdge="vertical"
                 style="?android:attr/progressBarStyleHorizontal"/>

    <TextView android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_gravity="center"
              android:id="@+id/progressText"
              android:paddingRight="10dp"/>

    <Button android:id="@+id/btnCancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="10dip"
            android:text="@string/button_options_text"
            android:textColor="@color/button_text_grey"
            android:drawableTop="@drawable/button_options"
            android:drawablePadding="-5dip"
            android:background="@null"/>

</LinearLayout>
</LinearLayout>

Это пример диалога прогресса с индикатором выполнения, текстом и кнопкой отмены.Вы можете легко изменить это на три кнопки.Обратите внимание, что кнопка прозрачна со значком и текстом.

...