欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android模擬美團(tuán)客戶端進(jìn)度提示框

 更新時(shí)間:2021年01月20日 10:16:29   投稿:lijiao  
這篇文章主要為大家詳細(xì)介紹了Android模擬美團(tuán)客戶端進(jìn)度提示框的實(shí)現(xiàn)過程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

用過美團(tuán)客戶端的朋友都知道,美團(tuán)的加載等待提示很有意思,是一種動(dòng)畫的形式展現(xiàn)給我們,下面我們就對(duì)這背后的原理進(jìn)行了解,然后實(shí)現(xiàn)自己的等待動(dòng)畫效果。
首先我們準(zhǔn)備兩張圖片:

這兩張圖片看起來一模一樣啊?細(xì)心的朋友會(huì)發(fā)現(xiàn)唯一不同的就在腳部,OK,我們就利用這兩張圖片的輪換播放實(shí)現(xiàn)動(dòng)畫效果,下面看一下代碼:

1.動(dòng)畫文件frame_meituan.xml:

<?xml version="1.0" encoding="utf-8"?> 
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" 
 android:oneshot="false" > 
 
 <item 
 android:drawable="@drawable/progress_loading_image_01" 
 android:duration="150"/> 
 <item 
 android:drawable="@drawable/progress_loading_image_02" 
 android:duration="150"/> 
 
</animation-list> 

150毫秒進(jìn)行圖片的切換,模擬動(dòng)畫效果。

2.簡(jiǎn)單自定義一個(gè)控件-MeituanProgressDialog.java:

package com.finddreams.runningman; 
 
import android.app.ProgressDialog; 
import android.content.Context; 
import android.graphics.drawable.AnimationDrawable; 
import android.os.Bundle; 
import android.widget.ImageView; 
import android.widget.TextView; 
 
import com.example.runningman.R; 
 
/** 
 * @Description:自定義對(duì)話框 
 * @author http://blog.csdn.net/yayun0516 
 */ 
public class MeituanProgressDialog extends ProgressDialog { 
 
 private AnimationDrawable mAnimation; 
 private Context mContext; 
 private ImageView mImageView; 
 private String mLoadingTip; 
 private TextView mLoadingTv; 
 private int count = 0; 
 private String oldLoadingTip; 
 private int mResid; 
 
 /** 
 * 
 * @param context 
 * 上下文對(duì)象 
 * @param content 
 * 顯示文字提示信息內(nèi)容 
 * @param id 
 * 動(dòng)畫id 
 */ 
 public MeituanProgressDialog(Context context, String content, int id) { 
 super(context); 
 this.mContext = context; 
 this.mLoadingTip = content; 
 this.mResid = id; 
 setCanceledOnTouchOutside(true); 
 } 
 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 
 initView(); 
 initData(); 
 } 
 
 private void initData() { 
 
 mImageView.setBackgroundResource(mResid); 
 // 通過ImageView對(duì)象拿到背景顯示的AnimationDrawable 
 mAnimation = (AnimationDrawable) mImageView.getBackground(); 
 
 mImageView.post(new Runnable() { 
 @Override 
 public void run() { 
 mAnimation.start(); 
 
 } 
 }); 
 mLoadingTv.setText(mLoadingTip); 
 
 } 
 
 public void setContent(String str) { 
 mLoadingTv.setText(str); 
 } 
 
 private void initView() { 
 setContentView(R.layout.progress_dialog);// 顯示界面 
 mLoadingTv = (TextView) findViewById(R.id.loadingTv); 
 mImageView = (ImageView) findViewById(R.id.loadingIv); 
 } 
 
} 

上面用到的提示布局文件的progress_dialog.xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:layout_gravity="center" 
 android:orientation="vertical" > 
 
 <ImageView 
 android:id="@+id/loadingIv" 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:background="@anim/frame_meituan"/> 
 
 <TextView 
 android:id="@+id/loadingTv" 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:layout_alignBottom="@+id/loadingIv" 
 
 android:layout_centerHorizontal="true" 
 android:textSize="20sp" 
 android:text="正在加載中.." /> 
 
</RelativeLayout> 

最后在Activity中調(diào)用:

package com.finddreams.runningman; 
 
import com.example.runningman.R; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.os.Handler; 
import android.view.View; 
/** 
 * @Description: 奔跑小人的動(dòng)畫進(jìn)度條對(duì)話框,可以用作加載數(shù)據(jù)界面 
 * @author http://blog.csdn.net/yayun0516 
 */ 
public class MeiTuanManActivity extends Activity { 
 private MeituanProgressDialog dialog; 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 
 setContentView(R.layout.meituan_progressdialog); 
 } 
 /** 
 * 顯示美團(tuán)進(jìn)度對(duì)話框 
 * @param v 
 */ 
 public void showmeidialog(View v){ 
 dialog =new MeituanProgressDialog(this, "正在加載中",R.anim.frame_meituan); 
 dialog.show(); 
 Handler handler =new Handler(); 
 handler.postDelayed(new Runnable() { 
 
 @Override 
 public void run() { 
 
 dialog.dismiss(); 
 } 
 }, 3000);//3秒鐘后調(diào)用dismiss方法隱藏; 
 
 } 
 
} 

最后,讓我們的程序跑起來:

ok,跑起來了,你想要加入你的項(xiàng)目,只需要準(zhǔn)備兩張圖片替換下來即可模擬動(dòng)畫。

相關(guān)文章

最新評(píng)論