使用说明 传入的context一定要是activity.this 之类的,不能使用getBaseContext() 待测
工具类
public class DialogLoading {
public static Dialog m_LodingDialog=null;
public static Context m_context;
public static int m_count = 0;
public DialogLoading(Context context) {
m_context = context;
m_count=0;
m_LodingDialog=null;
}
public static void StartLodingDialog(Context context) {
m_context= context;
Thread thread=new Thread(new Runnable() {
@Override
public void run() {
try {
Looper.prepare();
loading();
Looper.loop();
}catch (Exception e){
e.printStackTrace();
}
}
});
thread.start();
}
public static void loading(){
Log.e("m_count", String.valueOf(m_count));
try {
if(m_count!=0){
return;
}
Log.e("m_count", String.valueOf(m_count));
m_count++;
if (m_count == 1) {
m_LodingDialog = new Dialog(m_context, R.style.dialog_style);
m_LodingDialog.setContentView(R.layout.dialog_loding_all);
m_LodingDialog.setCanceledOnTouchOutside(true);
Window win = m_LodingDialog.getWindow();
win.setGravity(Gravity.CENTER);
win.setLayout(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
m_LodingDialog.setCanceledOnTouchOutside(false);
Log.e("m_count",String.valueOf(m_count));
if (m_LodingDialog!=null)
{
m_LodingDialog.show();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void StopLodingDialog() {
try {
if(m_count!=0)
{
m_count=0;
}else{
return;
}
if (m_count == 0) {
if(m_LodingDialog!=null){
m_LodingDialog.dismiss();}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
dialog_style文件放value目录下
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- 从右侧弹出对话框的动画,更新版本 -->
<style name="UpdateTravelAnim" mce_bogus="1" parent="android:Animation">
<item name="android:windowEnterAnimation">@anim/update_travel_enter</item>
<item name="android:windowExitAnimation">@anim/update_travel_exit</item>
</style>
<style name="dialog_style" parent="@android:Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
<!-- 从底部弹出对话框的动画 -->
<style name="dialogWindowAnim" mce_bogus="1" parent="android:Animation">
<item name="android:windowEnterAnimation">@anim/dialog_enter_anim</item>
<item name="android:windowExitAnimation">@anim/dialog_exit_anim</item>
</style>
</resources>
dialog_loding_all文件
<?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="match_parent"
android:clickable="true"
android:gravity="center"
android:orientation="vertical">
<!--<ImageView-->
<!--android:layout_width="50dp"-->
<!--android:layout_height="50dp"-->
<!--android:id="@+id/img_loding"/>-->
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
四个工具
update_travel_enter
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="100%p"
android:duration="200"
/>
</set>
update_travel_exit
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:toXDelta="100%p"
android:duration="200"
/>
</set>
dialog_enter_anim
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromYDelta="100%p"
android:duration="200"
/>
</set>
dialog_exit_anim
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:toYDelta="100%p"
android:duration="200"
/>
</set>
所有类打包
https://www.suchbear.cn/data/file/23973de1-e8b2-4baf-84b8-c36bd7a8a0c6.rar