android网络请求中使用到的加载动画


使用说明 传入的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