A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© shihao 中级黑马   /  2016-1-23 18:07  /  1101 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

方式一:自定义对话框
public class ProgressDialog extends Dialog {

    private ImageView img;
    private TextView txt;

    public ProgersssDialog(Context context) {
       
                        //初始化样式
            super(context, R.style.progress_dialog);

            //加载布局文件
            View view=  View.inflate(context, R.layout.progress_dialog, null);
            img=(ImageView) view.findViewById(R.id.progress_dialog_img);
            txt=(TextView) view.findViewById(R.id.progress_dialog_txt);
                       
            //给图片添加动态效果
            Animation anim=AnimationUtils.loadAnimation(context, R.anim.loading_dialog_progressbar);
            img.setAnimation(anim);
            txt.setText("数据正在处理,请稍后...");
                       
                        //设置圆角矩形
            getWindow().setBackgroundDrawableResource(R.drawable.round_retangle);  
                       
                        //添加视图  
                    setContentView(view);
                  
                    this.setCancelable(false);
    }

    /**
     * 对话框设置内容
     * @param msg
     */
    public void setMsg(String msg){
            txt.setText(msg);
    }
    /**
     * 显示对话框
     */
    public void showProgersssDialog(){
         this.show();
        }
    /**
     * 关闭对话框
     */
    public void closeProgersssDialog(){
        this.dismiss();
        }
}

//对应的布局文件

<!-- ?xml version="1.0" encoding="utf-8"? -->
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="180dp"
    android:layout_height="90dp"
    android:layout_gravity="center"
    android:background="@android:color/transparent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/progress_dialog_img"
        android:layout_width="45dp"
        android:layout_height="45dp"
        android:layout_gravity="center"
        android:layout_marginTop="3dp"
        android:src="@drawable/loading" >

        <TextView
            android:id="@+id/progress_dialog_txt"
            android:layout_width="135dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="3dp"
            android:text="数据正在处理,请稍后..."
            android:textColor="#000"
            android:textSize="12sp" >
        </TextView>
    </ImageView>

</linearlayout>

//对应样式
<style
    name="progress_dialog" parent="@android:style/Theme.Dialog">
       <item name="android:windowFrame">@null</item>         <!--Dialog的windowFrame框为无 -->
       <item name="android:windowIsFloating">true</item>        <!-- 是否漂现在activity上 -->
       <item name="android:windowIsTranslucent">false</item>        <!-- 是否半透明 -->
       <item name="android:windowNoTitle">true</item>
       <item name="android:backgroundDimEnabled">false</item>        <!-- 背景是否模糊显示 -->
       <item name="android:windowBackground">@android:color/black</item>
            <!--<item name="android:windowBackground">@drawable/loading_bg</item> -->
</style>



方式二:利用activity实现

1、直接利用一个activty布局,并在另外一个activity中操作该activity实例。
   在一个非activity实例中启动一个activity,必须要加上intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        public class LoadingActivity extends Activity{

                public static LoadingActivity mInstance=null;
                 
                @Override
                public void onCreate(Bundle savedInstanceState) {
                        // TODO Auto-generated method stub
                        super.onCreate(savedInstanceState);
                        setContentView(R.layout.loading);
                        mInstance=this;
                }
        }
       

//对应圆角矩形布局

<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <relativelayout
        android:layout_width="180dp"
        android:layout_height="90dp"
        android:layout_centerinparent="true"
        android:background="@drawable/loading_bg" >
        <linearlayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:orientation="vertical" >
            <progressbar
                android:id="@+id/progressBar1"
                style="?android:attr/progressBarStyleLarge"
                android:layout_width="55dp"
                android:layout_height="45dp"
                android:layout_gravity="center_horizontal" >
                <textview
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_margintop="5dp"
                    android:text="数据加载中,请稍后..."
                    android:textcolor="#fff"
                    android:textsize="12sp" >
                </textview>
            </progressbar>
        </linearlayout>
    </relativelayout>

</relativelayout>


//对应样式
<style name="MyDialogStyle">
       <item name="android:windowBackground">@android:color/transparent</item>
       <item name="android:windowFrame">@null</item>
       <item name="android:windowNoTitle">true</item>
       <item name="android:windowIsFloating">true</item>
       <item name="android:windowIsTranslucent">true</item>
       <item name="android:windowContentOverlay">@null</item>
       <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
       <item name="android:backgroundDimEnabled">true</item>
</style>

//并在清单文件中配置如下:
<activity android:name="r.LoadingActivity" android:theme="@style/MyDialogStyle" />



2、利用activity实现的另外一种布局:一个对话框主题的activity加上该布局即可:

//布局:
<!-- ?xml version="1.0" encoding="utf-8"? -->
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/round_retangle"
    android:orientation="vertical" >

                <textview
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:gravity="center"
                        android:text="提示"
                        android:textsize="18sp" >
                       
                <textview
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margintop="25dp"
            android:gravity="center"
            android:text="开启或关闭游客终端蓝牙设备?"
            android:textsize="15sp" >
                       
                <button
                        android:id="@+id/btn_on"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginleft="25dp"
                        android:layout_marginright="25dp"
                        android:layout_margintop="15dp"
                        android:background="@drawable/btn_style_green"
                        android:text="开启"
                        android:textsize="13sp" >
                </button>
                <button
                        android:id="@+id/btn_off"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginleft="25dp"
                        android:layout_marginright="25dp"
                        android:layout_margintop="10dp"
                        android:background="@drawable/btn_style_white"
                        android:gravity="center"
                        android:text="关闭"
                        android:textsize="13sp" >
                </button>
                <button
                        android:id="@+id/btn_quit"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginleft="25dp"
                        android:layout_marginright="25dp"
                        android:layout_margintop="10dp"
                        android:background="@drawable/btn_style_white"
                        android:gravity="center"
                        android:text="退出"
                        android:textsize="13sp" >
                </button>
        </textview>
    </textview>

</linearlayout>


//drawable目录对应的文件:

<!--?xml version="1.0" encoding="utf-8"?-->  
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">  

    <corners android:bottomleftradius="8dp" android:bottomrightradius="8dp" android:topleftradius="8dp" android:toprightradius="8dp">  
     <!-- 填充的颜色 -->
                <solid android:color="#FFFFFF">

                        <padding android:bottom="7dp" android:left="7dp" android:right="7dp" android:top="7dp"></padding>
                       
                </solid>
        </corners>
</shape>


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马