Android网络请求--动态加载的效果(已封装、可直接使用)

来源:互联网 发布:php查找字符串位置 编辑:程序博客网 时间:2024/06/07 01:36

Android网络请求–动态加载的效果

在Android进行网络请求的时候,因为必须在子线程进行的缘故,不得不加入一个动态加载的界面,以显得整个网络请求显得不那么突兀,这里介绍一个在Github上看到的动态加载的使用,侵权联系删除

原文:http://blog.csdn.net/qq_34861102/article/details/76907311
示例博文:http://blog.csdn.net/qq_34861102/article/details/76906330


  • 效果图

    这里写图片描述

    这个里面,当开始进行网络请求的时候就开始出现,当实现跳转界面或者其他操作的时候可以自定义消失

  • 代码实现过程

             //定义         CatLoadingView mView;         //显示         mView = new CatLoadingView();         mView.show(getSupportFragmentManager(), "");         //消失         mView.dismiss();

    这是这个动态加载效果从一开始定义到显示到消失的代码


    CatLoadingView实现代码:

    package com.common;import android.app.Dialog;import android.content.DialogInterface;import android.graphics.Color;import android.os.Bundle;import android.support.v4.app.DialogFragment;import android.text.TextUtils;import android.view.Gravity;import android.view.View;import android.view.animation.Animation;import android.view.animation.LinearInterpolator;import android.view.animation.RotateAnimation;import com.example.outlier.prictace_1.R;public class CatLoadingView extends DialogFragment {  public CatLoadingView() {  }  Animation operatingAnim, eye_left_Anim, eye_right_Anim;  Dialog mDialog;  View mouse, eye_left, eye_right;  EyelidView eyelid_left, eyelid_right;  GraduallyTextView mGraduallyTextView;  String text;  @Override public Dialog onCreateDialog(Bundle savedInstanceState) {    if (mDialog == null) {      mDialog = new Dialog(getActivity(), R.style.cart_dialog);      mDialog.setContentView(R.layout.catloading_main);      mDialog.setCanceledOnTouchOutside(true);      mDialog.getWindow().setGravity(Gravity.CENTER);      operatingAnim = new RotateAnimation(360f, 0f, Animation.RELATIVE_TO_SELF, 0.5f,          Animation.RELATIVE_TO_SELF, 0.5f);      operatingAnim.setRepeatCount(Animation.INFINITE);      operatingAnim.setDuration(2000);      eye_left_Anim = new RotateAnimation(360f, 0f, Animation.RELATIVE_TO_SELF, 0.5f,          Animation.RELATIVE_TO_SELF, 0.5f);      eye_left_Anim.setRepeatCount(Animation.INFINITE);      eye_left_Anim.setDuration(2000);      eye_right_Anim = new RotateAnimation(360f, 0f, Animation.RELATIVE_TO_SELF, 0.5f,          Animation.RELATIVE_TO_SELF, 0.5f);      eye_right_Anim.setRepeatCount(Animation.INFINITE);      eye_right_Anim.setDuration(2000);      LinearInterpolator lin = new LinearInterpolator();      operatingAnim.setInterpolator(lin);      eye_left_Anim.setInterpolator(lin);      eye_right_Anim.setInterpolator(lin);      View view = mDialog.getWindow().getDecorView();      mouse = view.findViewById(R.id.mouse);      eye_left = view.findViewById(R.id.eye_left);      eye_right = view.findViewById(R.id.eye_right);      eyelid_left = (EyelidView) view.findViewById(R.id.eyelid_left);      eyelid_left.setColor(Color.parseColor("#d0ced1"));      eyelid_left.setFromFull(true);      eyelid_right = (EyelidView) view.findViewById(R.id.eyelid_right);      eyelid_right.setColor(Color.parseColor("#d0ced1"));      eyelid_right.setFromFull(true);      if (!TextUtils.isEmpty(text)) {        mGraduallyTextView.setText(text);      }      operatingAnim.setAnimationListener(new Animation.AnimationListener() {        @Override public void onAnimationStart(Animation animation) {        }        @Override public void onAnimationEnd(Animation animation) {        }        @Override public void onAnimationRepeat(Animation animation) {          eyelid_left.resetAnimator();          eyelid_right.resetAnimator();        }      });    }    return mDialog;  }  @Override public void onResume() {    super.onResume();    mouse.setAnimation(operatingAnim);    eye_left.setAnimation(eye_left_Anim);    eye_right.setAnimation(eye_right_Anim);    eyelid_left.startLoading();    eyelid_right.startLoading();  }  @Override public void onPause() {    super.onPause();    operatingAnim.reset();    eye_left_Anim.reset();    eye_right_Anim.reset();    mouse.clearAnimation();    eye_left.clearAnimation();    eye_right.clearAnimation();    eyelid_left.stopLoading();    eyelid_right.stopLoading();  }  public void setText(String str) {    text = str;  }  @Override public void onDismiss(DialogInterface dialog) {    super.onDismiss(dialog);    mDialog = null;    System.gc();  }}

    对应的catloading_main.xml文件在layout中:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="170dp"    android:layout_height="200dp"    android:background="@color/color_tab_1"    android:orientation="vertical"    >    <ImageView        android:layout_centerInParent="true"        android:src="@drawable/mouse"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/mouse"/>    <RelativeLayout        android:layout_centerInParent="true"        android:layout_width="wrap_content"        android:layout_height="wrap_content">        <ImageView            android:layout_centerInParent="true"            android:src="@drawable/cat"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:id="@+id/cat"/>        <ImageView            android:layout_marginLeft="2dp"            android:layout_marginTop="9dp"            android:src="@drawable/eyes"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:id="@+id/eye_left"/>        <com.common.EyelidView            android:layout_marginLeft="2dp"            android:layout_marginTop="9dp"            android:src="@drawable/eyes"            android:layout_width="6dp"            android:layout_height="3.75dp"            android:id="@+id/eyelid_left"/>        <ImageView            android:layout_marginLeft="22dp"            android:layout_marginTop="9dp"            android:src="@drawable/eyes"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:id="@+id/eye_right"/>        <com.common.EyelidView            android:layout_marginLeft="22dp"            android:layout_marginTop="9dp"            android:src="@drawable/eyes"            android:layout_width="6dp"            android:layout_height="3.75dp"            android:id="@+id/eyelid_right"/>    </RelativeLayout></RelativeLayout>

    对应的stylevalue\style.xml中:

    <style name="cart_dialog"        parent="@android:style/Theme.Holo.Light.Dialog">        <item name="android:windowFrame">@null</item>        <item name="android:windowIsFloating">true</item>        <item name="android:windowIsTranslucent">true</item>        <item name="android:windowNoTitle">true</item>        <item name="android:background">@android:color/transparent</item>        <item name="android:windowBackground">@android:color/transparent</item>        <item name="android:backgroundDimEnabled">true</item>        <item name="android:backgroundDimAmount">0.6</item>    </style>

代码可以参照这个:(积分不够可以留邮箱):
在已经有的代码之上添加文中的CatLoadingView类的实现和对应的xml文件
http://download.csdn.net/detail/qq_34861102/9924780

其中的资源文件可以直接去我的项目地址drawable中下载
直接到达地址:https://github.com/Outliwer/Android-App/tree/master/app/src/main/res

*示例博文(包含它的用法):
*http://blog.csdn.net/qq_34861102/article/details/76906330

阅读全文
0 0
原创粉丝点击