Android ProgressDialog的样式 [英] Style for android ProgressDialog

查看:58
本文介绍了Android ProgressDialog的样式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试自定义 ProgressDialog 样式以具有类似的内容:

I'm trying to customize ProgressDialog style to have something like that:

我所拥有的:

我知道如何更改微调器的样式和颜色,但是我不明白的是:如何制作圆角,我试图使用 android:radius 属性,但是什么也没有变化,而我不知道如何减少 padding .也许我可以通过编程来做到这一点?

I know how to change spinner style and color, but what I didn't understand that is: how to make rounded-corners, I'm trying to use android:radius attribute, but nothing changes, and I don't know how to decrease padding. Maybe I can do it programmatically?

<style name="TransparentProgressDialog" parent="android:Theme.Holo.Dialog">
    <item name="android:alertDialogStyle">@style/CustomAlertDialogStyle</item>
    <item name="android:windowBackground">@color/transparent</item>
    <item name="android:textColorPrimary">#FFFFFF</item>
    <item name="android:backgroundDimEnabled">false</item>
    <item name="android:textColor">#FFFFFF</item>
    <item name="android:textStyle">normal</item>
    <item name="android:textSize">@dimen/_14sdp</item>
</style>

<style name="CustomAlertDialogStyle">
    <item name="android:bottomBright">@color/transparent</item>
    <item name="android:bottomDark">@color/transparent</item>
    <item name="android:bottomMedium">@color/transparent</item>
    <item name="android:centerBright">@color/transparent</item>
    <item name="android:centerDark">@color/transparent</item>
    <item name="android:centerMedium">@color/transparent</item>
    <item name="android:fullBright">@color/transparent</item>
    <item name="android:fullDark">@color/transparent</item>
    <item name="android:topBright">@color/transparent</item>
    <item name="android:topDark">@color/transparent</item>
</style>

推荐答案

尝试以下对我有用的代码:

try the below Code it works for me:

将此XML文件放入可绘制文件夹(dialog_progress_background.xml)

Put this XML file in drawable folder (dialog_progress_background.xml)

<corners android:radius="10dp" />

<solid android:color="#80000000" />

<padding
    android:bottom="40dp"
    android:left="40dp"
    android:right="40dp"
    android:top="40dp" />

Dailog布局(R.layout.dialog_spinner.xml)

Dailog layout (R.layout.dialog_spinner.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <ProgressBar
        android:id="@+id/progressBar"
        style="?android:attr/progressBarStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/progressBar"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dp"
        android:text="Loading..."
        android:textColor="#FFFFFF" />

</RelativeLayout>

//用于创建自定义进度对话框的类

// Class for create custom Progress Dialog

public class ProgressBuilder {
    private Context context;
    private Dialog dialog;

    public ProgressBuilder(Context context) {
        this.context = context;

    }

    public void showProgressDialog() {
        dialog = new Dialog(context);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.getWindow().setBackgroundDrawable(
                context.getResources().getDrawable(
                        R.drawable.dialog_progress_background));
        dialog.setContentView(R.layout.dialog_spinner);
        dialog.setCancelable(false);
        dialog.show();
    }

    public TextView getTextView()
    {
        return (TextView)dialog.findViewById(R.id.textView1);
    }

    public Dialog getDialog()
    {
        return dialog;
    }

    public void dismissProgressDialog() {
        dialog.dismiss();
    }
}

并调用showProgressDialog()方法以显示进度对话框

And call showProgressDialog() method to show Progress Dialog

ProgressBuilder dialog=new ProgressBuilder(MainActivity.this);
    dialog.showProgressDialog()  

//关闭进度对话框

dialog.dismissProgressDialog()

这篇关于Android ProgressDialog的样式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆