根据项目需求需要在加载的时候加入一个带动画效果的进度。
最先想到的就是 自定义一个dialog 再加上一个动画就OK了。
so.....
public class CMYProgressDialog extends Dialog { public CMYProgressDialog(Context context) { super(context, R.style.CMYProgressDialog); setContentView(R.layout.layout_loading); getWindow().getAttributes().gravity = Gravity.CENTER; setCanceledOnTouchOutside(false); } @Override public void onWindowFocusChanged(boolean hasFocus) { ImageView loadingImage = (ImageView) findViewById(R.id.prodlg_loading_iv); AnimationDrawable animation =(AnimationDrawable) loadingImage.getBackground(); if(animation.isRunning()){ animation.stop(); } animation.start(); }
等等 好像还需要一个提示消息什么的 那么就再加一个方法
public CMYProgressDialog setMessage(String strMessage) { TextView tvMsg = (TextView) findViewById(R.id.prodlg_loading_msg); if (tvMsg != null) { tvMsg.setText(strMessage); } return this; }
XML的文件里是这样的
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:background="@drawable/loading_bg"> <ImageView android:id="@+id/prodlg_loading_iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@anim/progress_loading_anim" android:layout_gravity="center_horizontal" /> <TextView android:id="@+id/prodlg_loading_msg" style="@style/cmy_text_default" android:layout_gravity="center_horizontal" android:layout_marginTop="100dp" android:text="@string/common_str_loading_tip" android:textColor="@color/white" /> </FrameLayout>
这是ImageView中的动画
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <item android:drawable="@drawable/img_progress_01" android:duration="300" /> <item android:drawable="@drawable/img_progress_02" android:duration="300" /> <item android:drawable="@drawable/img_progress_03" android:duration="300" /> <item android:drawable="@drawable/img_progress_04" android:duration="300" /> </animation-list>
在需要用到的地方只要
if (mProgressDialog == null) { mProgressDialog = new CMYProgressDialog(mContext); } mProgressDialog.show();
是不是很简单~~~
时间: 2024-11-10 11:19:53