多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > Android帶動畫效果的彈窗

Android帶動畫效果的彈窗

來源:程序員人生   發布時間:2015-03-19 08:30:19 閱讀次數:5082次
在網絡加載數據的時候通常需要很多時間,這個時候程序里面常常需要寫1個提示正在加載數據的彈窗,這篇文章用兩種方式實現帶動畫效果的Dialog:幀動畫實現和GIF動態圖實現,它們都能到達動畫的效果
第1種、幀動畫實現
自定義1個Dialog,先看1下布局文件dialog_animation.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:orientation="vertical" android:paddingBottom="20dp" android:paddingLeft="80dp" android:paddingRight="80dp" android:paddingTop="20dp" > <ImageView android:id="@+id/dialog_animation_img" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/dialog_animation_txt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:gravity="center" android:text="正在加載數據。。。" android:textColor="@android:color/black" android:textSize="16sp" /> </LinearLayout>
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的循環播放模式不起作用,只能手動的在動畫播放完以后再播放1次 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中的幀動畫文件,很簡單的,就3張圖片順序播放。新建res/drawable/animation_dialog.xml
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false" > <item android:drawable="@drawable/girl1" android:duration="100"/> <item android:drawable="@drawable/girl2" android:duration="100"/> <item android:drawable="@drawable/girl3" android:duration="100"/> </animation-list>
TextView使用的補間動畫文件。新建res/anim/animation_dialog_txt.xml
<set xmlns:android="http://schemas.android.com/apk/res/android" android:fillBefore="true" android:fillEnabled="true" android:repeatMode="restart" > <translate android:duration="1000" android:fromXDelta="⑵0%" android:interpolator="@android:anim/accelerate_interpolator" android:toXDelta="0%" /> <translate android:duration="1000" android:fromXDelta="0%" android:interpolator="@android:anim/decelerate_interpolator" android:toXDelta="20%" /> <alpha android:duration="1000" android:fromAlpha="0.0" android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:toAlpha="1" /> <alpha android:duration="200" android:fromAlpha="1" android:interpolator="@android:anim/decelerate_interpolator" android:toAlpha="0.8" /> </set>

效果圖

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

第2種、GIF動態圖實現
這類是通過播放GIF動態圖來到達動畫效果。
首先這需要1個第3方的jar包,GifView.jar,將其下載以后導入項目
新建布局文件dialog_gif.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:orientation="vertical" android:paddingBottom="20dp" android:paddingLeft="80dp" android:paddingRight="80dp" android:paddingTop="20dp" > <com.ant.liao.GifView android:id="@+id/dialog_gifView" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/dialog_gif_txt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:gravity="center" android:text="正在加載數據。。。" android:textColor="@android:color/black" android:textSize="16sp" /> </LinearLayout>
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; }

效果圖


源碼下載







生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲h视频在线观看 | 大陆60老妇xxxxhd| 久久人人爱 | 亚洲欧美日韩中文字幕网址 | 美国毛片亚洲社区在线观看 | 俺来也俺去啦久久综合网 | 一区二区高清视频在线观看 | 欧洲一区二区三区 | 欧美一区二区三区在线播放 | 国产乱码一区二区三区 | 国产精品久久网 | 手机看片手机在线看片 | 久久96国产精品久久久 | 波多野结衣久久国产精品 | 91久久澡人人爽人人添 | 韩国在线观看免费观看影院 | 久久久久毛片成人精品 | 黄色网一级片 | 久久99精品久久久久久综合 | 日本免费一区视频 | 福利在线影院 | 久久精品久久精品久久精品 | 日韩国产欧美在线观看一区二区 | 成年人免费看视频 | 中文字幕欧美激情 | h网站在线观看 | 国产精品毛片在线更新 | 高清国产一区二区三区 | 欧美福利精品 | 中文字幕亚洲专区 | 九月婷婷天天澡天天添天天爽 | 欧美亚洲网站 | 视频1区| 久久亚洲精品久久久久 | 国产高清国产精品国产k | 午夜性色福利视频 | 亚洲天堂网站 | 久久久久亚洲精品一区二区三区 | 亚洲一区二区三区免费 | 中文字幕欧美日韩久久 | 欧美一级毛片图 |