国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android拋物線下載動畫制作過程

2019-12-12 04:28:59
字體:
來源:轉載
供稿:網友

下載動畫經常出現在下載需求多的app中,比如游戲下載平臺,應用市場……

先看看效果圖:

實現

private void startAnim() {    //以bitmap創建new ImageView  iv.setDrawingCacheEnabled(true);   Bitmap bitmap = iv.getDrawingCache();    ImageView logo = new ImageView(this);     logo.setScaleType(ImageView.ScaleType.FIT_XY);     logo.setImageBitmap(bitmap);   int[] startLocation = new int[2];    iv.getLocationInWindow(startLocation);     end.getLocationInWindow(location_download);   setAnim(logo, startLocation, location_download);}

設置動畫

private void setAnim(final ImageView logo, int[] startLocation,int[] location_download) {   ViewGroup animMaskLayout = createAnimLayout();   animMaskLayout.addView(logo);// 把動畫小球添加到動畫層  // 計算位移 final View view = addViewToAnimLayout(logo, startLocation); // 動畫位移的X坐標    int endY = location_download[1] - startLocation[1]; // 動畫位移的y坐標   TranslateAnimation translateAnimationX = new TranslateAnimation(0,  endX, 0, 0);   translateAnimationX.setInterpolator(new LinearInterpolator());    translateAnimationX.setRepeatCount(0);// 動畫重復執行的次數   translateAnimationX.setFillAfter(true);  TranslateAnimation  translateAnimationY = new TranslateAnimation(0, 0, 0, endY);    translateAnimationY.setInterpolator(new AccelerateInterpolator());   translateAnimationY.setRepeatCount(0);// 動畫重復執行的次數   translateAnimationX.setFillAfter(true);  AnimationSet set = new  AnimationSet(false);  set.setFillAfter(false);   set.addAnimation(translateAnimationY);   set.addAnimation(translateAnimationX);  set.setDuration(2000);// 動畫的執行時間   view.startAnimation(set);  // 動畫監聽事件   set.setAnimationListener(new Animation.AnimationListener() {      // 動畫的開始        @Override      public void onAnimationStart(Animation animation) {         logo.setVisibility(View.VISIBLE);     }        @Override    public void onAnimationRepeat(Animation animation) {     }      // 動畫的結束       @Override     public void onAnimationEnd(Animation animation) {             logo.setVisibility(View.GONE);     }   });}

創建動畫父布局

private ViewGroup createAnimLayout() {  ViewGroup rootView = (ViewGroup) getWindow().getDecorView();      LinearLayout animLayout = new LinearLayout(this);      LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(    LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);    animLayout.setLayoutParams(lp);     animLayout.setId(Integer.MAX_VALUE);    animLayout.setBackgroundResource(android.R.color.transparent);     rootView.addView(animLayout);   return animLayout;}

設置動畫布局參數

private static View addViewToAnimLayout(final View view, int[] location) {  int x = location[0];  int y = location[1];  LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(80, 80);  lp.leftMargin = x;  lp.topMargin = y;  view.setLayoutParams(lp);  return view;}

代碼就到此結束了,看起來并不難,動手試試吧。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昌都县| 定州市| 许昌市| 本溪市| 石首市| 抚远县| 措勤县| 惠水县| 南靖县| 岐山县| 洪洞县| 报价| 南昌市| 重庆市| 凤凰县| 弥勒县| 海原县| 陵水| 高安市| 奉化市| 惠州市| 南阳市| 饶河县| 茌平县| 久治县| 夏津县| 云林县| 中方县| 盐山县| 连州市| 剑河县| 个旧市| 名山县| 宁乡县| 民丰县| 斗六市| 临邑县| 苗栗县| 白朗县| 通许县| 九龙县|