当前位置: 首页 > 知识库问答 >
问题:

如何用asynctask实现旋转动画ProgressDialog

伯俊弼
2023-03-14
  1. 使用此代码执行asynctask之前,在progressdialog中显示旋转动画

ProgressDialog pDialog=ProgressDialog.show(getActivity(),null,null,true,false);pDialog.SetContentView(r.Layout.Loading);

这是r.layout.loadingxml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ln_loadingcontainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#00000000">

    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@android:style/Widget.ProgressBar.Large"
        android:layout_gravity="center"/>

    <TextView
        android:id="@+id/tv_loading"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Loading..."
        android:textSize="24dp"
        android:textColor="#ffffff"
        android:layout_marginTop="5dp"
        android:layout_gravity="center"/>
</LinearLayout>
1.global variable of ProgressDialog

private ProgressDialog pDiaalog;

2.in oncreate of activity

gv_table.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
        progressDialog = ProgressDialog.show(getActivity(), null, null, true, true);
        progressDialog.setContentView(R.layout.loading);

        MyTask t = new MyTask();
        t.execute();
    }
});

3.MyTask

private class MyTaskextends AsyncTask<String, Void, String>{

    public MyTask(){
    }

    @Override
    protected String doInBackground(String... params) {
        RunExecute();
        return null;
    }

    @Override
    protected void onPostExecute(String result) {
        if (pDialog != null) {
            if (pDialog.isShowing())
                pDialog.hide();
        }
    }

    @Override
    protected void onPreExecute() {
        if(IsShowProgress) {
            if (pDialog != null)
                pDialog.show();
        }

        super.onPreExecute();
    }

    @Override
    protected void onProgressUpdate(Void... values) {
    }
}

共有1个答案

弓明亮
2023-03-14
ProgressDialog pDialog;
onPreExecure()
pDialog = ProgressDialog.show(MainActivity.this, null, null, true, false); 
        pDialog.setContentView(R.layout.loading);
onPostExecute()
if(pDialog.isShowing())
{
    pDialog.dismiss();
}
 类似资料:
  • 本文向大家介绍flutter RotationTransition实现旋转动画,包括了flutter RotationTransition实现旋转动画的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了flutter RotationTransition实现旋转动画的具体代码,供大家参考,具体内容如下 flutter 动画状态监听器 AnimationController Animati

  • 本文向大家介绍jQuery实现图像旋转动画效果,包括了jQuery实现图像旋转动画效果的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,直接给大家贴代码了,具体代码如下所示: 以上所述是小编给大家介绍的jQuery实现图像旋转动画效果,希望对大家有所帮助!

  • 问题内容: 无法使此动画图像正常工作,它应该进行360度旋转。 我猜下面的CSS有点问题,因为它保持静止。 问题答案: 这是 正确的动画CSS: 有关代码的一些注意事项: 您已将关键帧嵌套在规则中,这是不正确的 不适用于绝对定位的元素 看看caniuse:IE10不需要前缀

  • 动画outputRotate Out Up LeftRotate InRotate Out Up RightRotate Out Up LeftRotate Out Up RightRotate OutRotate Out Up LeftRotate Out Up RightRotate Out Up LeftRotate Out Up Right

  • 问题内容: 我想通过CSS旋转加载图标。 我有一个图标和以下代码: 但这是行不通的。如何使用CSS旋转图标? 问题答案:

  • 要通过WebGL渲染出立方体旋转的动画效果,你首要了解“帧”这个概念,比如你观看的视频其实就是一帧一帧的图片连续播放的效果,只要图片刷新的频率的不是太低,人的眼睛都不会察觉,一般30~60FPS就可以。 WebGL如何产生一帧一帧的图片,这个很简单,执行一次绘制函数gl.drawArrays(),WebGL图形系统就会通知GPU渲染管线处理顶点数据生成一帧RGB像素数据显示在屏幕canvas画布上