Android 中是否有开发人员可以使用的内置按钮?

发布于 2024-10-03 12:16:52 字数 143 浏览 7 评论 0原文

我想尝试获得与应用程序底部的选项卡类似的漂亮按钮,但我想知道是否有这样的内置按钮:

这将使导航更好,并且开发更容易&如果是的话,速度会更快。

I want to try to get nice buttons that will work similar to tabs down the bottom of my app, but I am wondering if there are buttons like this built in:

It would make navigation better, and developing a lot easier & faster if they are.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

忆沫 2024-10-10 12:16:52

您的示例屏幕截图显示了一个几乎未受影响的 Android 2.2 启动器。由于它是开源的,您可以看看它是如何完成的。 这是它使用的布局文件。

请注意底部的relativelayout,其中包含三个“hotseat”按钮。它们每个都使用自定义样式来获取外观,这些样式定义为 此处。

Your example screenshot is showing a mostly-untouched stock Android 2.2 launcher. Since it's open source you can take a look at how it's done. Here's the layout file it uses.

Note the RelativeLayout at the bottom containing the three "hotseat" buttons. Each of them uses a custom style to get the appearance, those styles are defined here.

┈┾☆殇 2024-10-10 12:16:52

图片中显示的是 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>

这是带有进度条、文本和取消按钮的进度对话框的示例。您可以轻松地将其更改为三个按钮。请注意,按钮对于图标和文本是透明的。

What you are showing in the picture is HTC Sense Launcher. It's an add-on and not part of core Android OS.

BTW it's easy to do custom transparent button like this. Let me know if you need any help with this.

Update:

Use this example to create a custom Dialog, that is not modal and is floating and transparent.

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();

And the dialog layout is:

<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>

This is an example of a progress dialog with progress bar, text and cancel button. You can easily change this to three buttons. Note that button is transparent with icon and text.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文