Android中如何设置ProgressDialog的颜色和背景

 我来答
浅浅半4dab
推荐于2016-02-10 · TA获得超过617个赞
知道小有建树答主
回答量:352
采纳率:100%
帮助的人:376万
展开全部
  1. String.xml 文件,progressDialog是继承与Dialog,先设置一下progressDialog的风格,设置你想要的背景和颜色:        


    <style name="CustomDialog" parent="@android:style/Theme.Dialog"> 

        <item name="android:windowFrame">@null</item> 

            <item name="android:windowIsFloating">true</item> 

          <item name="android:windowContentOverlay">@null</item> 

            <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 

          <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item> 

        </style> 

           

        <style name="CustomProgressDialog" parent="@style/CustomDialog"> 

          <item name="android:windowBackground">@android:color/transparent</item> 

            <item name="android:windowNoTitle">true</item> 

       </style>

    2.customprogressdialog.xml文件,定义自己的布局,由于我的需求只需要一个进度条以及一串显示的内容,所以布局比较接单



    <?xml version="1.0" encoding="utf-8"?> 

    <LinearLayout 

      android:layout_width="fill_parent" 

      android:layout_height="fill_parent" 

     android:orientation="horizontal"> 

        <ImageView 

            android:id="@+id/loadingImageView" 

            android:layout_width="wrap_content" 

           android:layout_height="wrap_content" 

          android:background="@anim/progress_round"/> 

        <TextView 

           android:id="@+id/id_tv_loadingmsg" 

           android:layout_width="wrap_content" 

           android:layout_height="wrap_content" 

           android:layout_gravity="center_vertical" 

            android:textSize="20dp"/> 

    </LinearLayout>

    3.progress_round.xml文件.这个文件为了实现转动的效果,循环显示这些图片。


    <?xml version="1.0" encoding="utf-8"?> 

    <animation-list 

  android:oneshot="false"> 

    <item android:drawable="@drawable/progress_1" android:duration="200"/> 

    <item android:drawable="@drawable/progress_2" android:duration="200"/> 

   <item android:drawable="@drawable/progress_3" android:duration="200"/> 

    <item android:drawable="@drawable/progress_4" android:duration="200"/> 

    <item android:drawable="@drawable/progress_5" android:duration="200"/> 

    <item android:drawable="@drawable/progress_6" android:duration="200"/> 

    <item android:drawable="@drawable/progress_7" android:duration="200"/> 

    <item android:drawable="@drawable/progress_8" android:duration="200"/> 

</animation-list>

4.CustomProgressDialog.java文件,这个是就是我们最终需要使用的progressDialog了。

public class CustomProgressDialog extends Dialog {

    private Context context = null;

    private static CustomProgressDialog customProgressDialog = null;

     

    public CustomProgressDialog(Context context){

        super(context);

        this.context = context;

    }

     

    public CustomProgressDialog(Context context, int theme) {

        super(context, theme);

    }

     

    public static CustomProgressDialog createDialog(Context context){

        customProgressDialog = new CustomProgressDialog(context,R.style.CustomProgressDialog);

        customProgressDialog.setContentView(R.layout.customprogressdialog);

        customProgressDialog.getWindow().getAttributes().gravity = Gravity.CENTER;

         

        return customProgressDialog;

    }

  

    public void onWindowFocusChanged(boolean hasFocus){

         

        if (customProgressDialog == null){

            return;

        }

         

        ImageView imageView = (ImageView) customProgressDialog.findViewById(R.id.loadingImageView);

        AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getBackground();

        animationDrawable.start();

    }

 

   *

     * [Summary]

     *       setTitile 标题

     * @param strTitle

     * @return

     *

     */

    public CustomProgressDialog setTitile(String strTitle){

        return customProgressDialog;

    }

     

    /**

     *

     * [Summary]

     *       setMessage 提示内容

     * @param strMessage

     * @return

     *

     */

    public CustomProgressDialog setMessage(String strMessage){

        TextView tvMsg = (TextView)customProgressDialog.findViewById(R.id.id_tv_loadingmsg);

         

        if (tvMsg != null){

            tvMsg.setText(strMessage);

        }

         

        return customProgressDialog;

    }

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wy5787
2011-07-18 · TA获得超过395个赞
知道小有建树答主
回答量:499
采纳率:0%
帮助的人:347万
展开全部
最简单的用setView()方法自定义的xml文件放进去.xml里想设置颜色背景什么都可以么
更多追问追答
追问
没懂...
追答
..其实我也没懂你的意思,你要设置那个颜色和背景,都是系统的,方法里只有设置标题和图标还有文字,要定义颜色和背景,要么重写这个,要么就自定义一个View放进去么
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式