Android开发之自定义圆角矩形进度对话框

来源:互联网 发布:js如何遍历json数据 编辑:程序博客网 时间:2024/06/07 06:28

方式一:自定义对话框

public class ProgersssDialog 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);              //dialog添加视图           setContentView(view);           this.setCancelable(false);                        }        /**     * 对话框设置内容     * @param msg     */    public void setMsg(String msg){            txt.setText(msg);    }    /**     * 设置对话框背景     * @param msgId     */    public void setMsg(int msgId){            txt.setText(msgId);    }    /**     * 显示对话框     */    public void showProgersssDialog(){     this.show();}    /**     * 关闭对话框     */    public void closeProgersssDialog(){    this.dismiss();}}

对应的xml布局:

<?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:background="@android:color/transparent"  android:orientation="vertical"    android:layout_gravity="center"    >    <ImageView        android:id="@+id/progress_dialog_img"        android:layout_width="45dp"        android:layout_height="45dp"        android:layout_marginTop="3dp"        android:layout_gravity="center"        android:src="@drawable/loading" />    <TextView        android:id="@+id/progress_dialog_txt"        android:layout_width="135dp"        android:layout_height="wrap_content"        android:layout_marginLeft="10dp"        android:layout_marginTop="3dp"         android:layout_gravity="center"        android:text="数据正在处理,请稍后..."        android:textColor="#000"        android:textSize="12sp" /></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">@drawable/loading_bg</item> -->      <item name="android:windowBackground">@android:color/black</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;@Overridepublic void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.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:text="数据加载中,请稍后..."       android:layout_marginTop="5dp"        android:textColor="#fff"        android:textSize="12sp"        />        </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_marginTop="25dp"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:gravity="center"        android:text="开启或关闭游客终端蓝牙设备?"        android:textSize="15sp" />          <Button            android:id="@+id/btn_on"             android:layout_marginTop="15dp"            android:layout_marginLeft="25dp"            android:layout_marginRight="25dp"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:text="开启"             android:background="@drawable/btn_style_green"            android:textSize="13sp" />        <Button            android:id="@+id/btn_off"            android:layout_marginTop="10dp"            android:layout_marginLeft="25dp"            android:layout_marginRight="25dp"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:gravity="center"            android:text="关闭"             android:background="@drawable/btn_style_white"            android:textSize="13sp" />                 <Button            android:id="@+id/btn_quit"            android:layout_marginTop="10dp"            android:layout_marginLeft="25dp"            android:layout_marginRight="25dp"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:gravity="center"            android:text="退出"             android:background="@drawable/btn_style_white"            android:textSize="13sp" />   </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" />    </shape>  

资源下载地址:http://download.csdn.net/detail/u014600432/8362247







0 0
原创粉丝点击