方式一:自定义对话框
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>
|
|