Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android帶動畫效果的彈窗

Android帶動畫效果的彈窗

編輯:關於Android編程

在網絡加載數據的時候通常需要很多時間,這個時候程序裡面經常需要寫一個提示正在加載數據的彈窗,這篇文章用兩種方式實現帶動畫效果的Dialog:幀動畫實現和GIF動態圖實現,它們都能達到動畫的效果
第一種、幀動畫實現
自定義一個Dialog,先看一下布局文件dialog_animation.xml


    

    

ImageView用來顯示動畫,TextView用於提示用戶我們正在加載數據
public static Dialog createAnimationDailog(final Context context) {
		final Dialog dialog = new Dialog(context, R.style.dialog);
		dialog.setContentView(R.layout.dialog_animation);
		ImageView animationView = (ImageView) dialog
				.findViewById(R.id.dialog_animation_img);
		animationView.setBackgroundResource(R.drawable.animation_dialog);
		AnimationDrawable animationDrawable = (AnimationDrawable) animationView
				.getBackground();
		animationDrawable.start();
		final TextView textView = (TextView) dialog
				.findViewById(R.id.dialog_animation_txt);
		Animation animation = AnimationUtils.loadAnimation(context,
				R.anim.animation_dialog_txt);
		// animation的循環播放模式不起作用,只能手動的在動畫播放完之後再播放一次
		animation.setAnimationListener(new AnimationListener() {

			@Override
			public void onAnimationEnd(Animation arg0) {
				Animation anim = AnimationUtils.loadAnimation(context,
						R.anim.animation_dialog_txt);
				textView.startAnimation(anim);
				anim.setAnimationListener(this);
			}

			@Override
			public void onAnimationRepeat(Animation arg0) {
				// TODO Auto-generated method stub
			}

			@Override
			public void onAnimationStart(Animation arg0) {
				// TODO Auto-generated method stub

			}

		});
		// 綁定動畫
		textView.startAnimation(animation);
		return dialog;
	}
ImageView中的幀動畫文件,很簡單的,就三張圖片順序播放。新建res/drawable/animation_dialog.xml


    
    
    

TextView使用的補間動畫文件。新建res/anim/animation_dialog_txt.xml


    
    

    
    

效果圖
\

截屏效果太差,實際動畫是很流暢的,相信我。

第二種、GIF動態圖實現
這種是通過播放GIF動態圖來達到動畫效果。
首先這需要一個第三方的jar包,GifView.jar,將其下載之後導入項目
新建布局文件dialog_gif.xml


    

    

public static Dialog createGIFDialog(final Context context) {
		final Dialog dialog = new Dialog(context, R.style.dialog);
		dialog.setContentView(R.layout.dialog_gif);
		GifView gifView = (GifView) dialog.findViewById(R.id.dialog_gifView);
		gifView.setGifImage(R.drawable.ride);
		gifView.showAnimation();
		final TextView textView = (TextView) dialog
				.findViewById(R.id.dialog_gif_txt);
		Animation animation = AnimationUtils.loadAnimation(context,
				R.anim.animation_dialog_txt);

		animation.setAnimationListener(new AnimationListener() {

			@Override
			public void onAnimationEnd(Animation arg0) {
				Animation anim = AnimationUtils.loadAnimation(context,
						R.anim.animation_dialog_txt);
				textView.startAnimation(anim);
				anim.setAnimationListener(this);
			}

			@Override
			public void onAnimationRepeat(Animation arg0) {
				// TODO Auto-generated method stub

			}

			@Override
			public void onAnimationStart(Animation arg0) {
				// TODO Auto-generated method stub

			}

		});
		// 綁定動畫
		textView.startAnimation(animation);
		return dialog;
	}

效果圖

\

 







  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved