【问题标题】:Style for android ProgressDialogandroid ProgressDialog的样式
【发布时间】:2016-02-05 18:13:54
【问题描述】:

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

我有什么:

我知道如何更改微调器样式和颜色,但我不明白的是:如何制作圆角,我正在尝试使用 android:radius 属性,但没有任何变化,我没有知道如何减少padding。也许我可以通过编程来完成?

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

【问题讨论】:

  • 使用Appcompat 主题?
  • parent="android:style/Theme.Holo.Dialog"
  • @IntelliJAmiya 如果我使用 Theme.AppCompat 它会破坏我的所有设计
  • 检查下面的答案。

标签: android


【解决方案1】:

试试下面对我有用的代码:

将此 XML 文件放入可绘制文件夹 (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)

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

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

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() 方法显示进度对话框

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

//关闭进度对话框

dialog.dismissProgressDialog()

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-07-20
  • 2012-02-23
  • 2015-08-24
  • 1970-01-01
  • 2014-12-18
  • 2012-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多