<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false" > <item android:duration="100" android:drawable="@drawable/loading_white_01"> </item> <item android:duration="100" android:drawable="@drawable/loading_white_02"> </item> <item android:duration="100" android:drawable="@drawable/loading_white_03"> </item> <item android:duration="100" android:drawable="@drawable/loading_white_04"> </item> <item android:duration="100" android:drawable="@drawable/loading_white_05"> </item> <item android:duration="100" android:drawable="@drawable/loading_white_06"> </item> <item android:duration="100" android:drawable="@drawable/loading_white_07"> </item> <item android:duration="100" android:drawable="@drawable/loading_white_08"> </item> <item android:duration="100" android:drawable="@drawable/loading_white_09"> </item> <item android:duration="100" android:drawable="@drawable/loading_white_10"> </item> <item android:duration="100" android:drawable="@drawable/loading_white_11"> </item> <item android:duration="100" android:drawable="@drawable/loading_white_12"> </item> </animation-list>
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:angle="90.0" android:endColor="#99363636" android:startColor="#99363636"/> <corners android:radius="5dp"/> </shape>
package com.jaiky.test.loadinganimation; import android.content.Context; import android.graphics.drawable.AnimationDrawable; import android.util.AttributeSet; import android.widget.ImageView; /** * Author by Jaiky, Email [email protected], Date on 9/22/2016. * PS: Not easy to write code, please indicate. */ public class ListAniImageView extends ImageView { private AnimationDrawable animationDrawable; public ListAniImageView(Context context) { super(context); inti(); } public ListAniImageView(Context context, AttributeSet attrs) { super(context, attrs); inti(); } public ListAniImageView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); inti(); } public void inti() { animationDrawable = (AnimationDrawable) getDrawable(); animationDrawable.start(); } public void startAnimation() { animationDrawable.start(); } public void stopAnimation() { animationDrawable.setVisible(true, true); animationDrawable.stop(); } public void pauseAnimation() { animationDrawable.stop(); } }
<!-- 无标题无黑幕透明背景对话框样式 --> <style name="NoFrameNoDim_Dialog" parent="android:Theme.Dialog"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowNoTitle">true</item> <item name="android:backgroundDimEnabled">false</item> </style>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="100dp" android:layout_height="100dp" android:layout_gravity="center" android:background="@drawable/toast_bgshape" android:gravity="center" android:orientation="vertical"> <com.jaiky.test.toastdialog.ListAniImageView android:layout_width="42dp" android:layout_height="42dp" android:layout_gravity="center" android:src="@drawable/loading_progress_white_rotate" android:visibility="visible"/> <TextView android:id="@+id/dialogToast_tvLoadInfo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="10dp" android:gravity="center" android:paddingLeft="5dp" android:paddingRight="5dp" android:text="正在提交..." android:textColor="#ffffff" android:textSize="12sp" /> </LinearLayout>
package com.jaiky.test.toastdialog; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.view.KeyEvent; import android.widget.TextView; /** * Author by Jaiky, Email [email protected], Date on 8/15/2016. * PS: Not easy to write code, please indicate. */ public class ToastDialog extends Dialog { private TextView tvLoadInfo; private boolean isAllowClose = true; public ToastDialog(Context context) { this(context, R.style.NoFrameNoDim_Dialog); } private ToastDialog(Context context, int theme) { super(context, theme); init(); } private void init() { setContentView(R.layout.dialog_toast); tvLoadInfo = (TextView) findViewById(R.id.dialogToast_tvLoadInfo); setCanceledOnTouchOutside(true); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } /** * 设置加载消息内容 * * @param msg */ public ToastDialog setMsg(String msg) { tvLoadInfo.setText(msg); return this; } /** * 是否允许关闭对话框 * * @param isAllowClose * @return */ public ToastDialog setIsAllowClose(boolean isAllowClose) { setCanceledOnTouchOutside(isAllowClose); this.isAllowClose = isAllowClose; return this; } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (!isAllowClose) { return true; } else { return super.onKeyDown(keyCode, event); } } }
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/black" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.jaiky.test.toastdialog.MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/btn1" android:text="弹出加载对话框" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> <Button android:id="@+id/btn2" android:text="不允许关闭对话框" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" /> </LinearLayout> </RelativeLayout>
package com.jaiky.test.toastdialog; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { Button btn1, btn2; ToastDialog mToastDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1 = (Button) findViewById(R.id.btn1); btn2 = (Button) findViewById(R.id.btn2); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mToastDialog == null) mToastDialog = new ToastDialog(MainActivity.this); mToastDialog.setMsg("正在加载...") .show(); } }); btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mToastDialog == null) mToastDialog = new ToastDialog(MainActivity.this); mToastDialog.setIsAllowClose(false); } }); } }
欢迎转载,但请保留文章原始出处
作者:Jaiky_杰哥
出处:http://blog.csdn.net/jaikydota163/article/details/52098841