<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Android 曲線動畫animation,類似加入購物車動畫

      按照慣例先放效果圖:圖中小球做拋物線運動

      資源圖片

       

      1.首先布局文件activity_main.xml,布局很簡單,就一個測試按鈕

       1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
       2     xmlns:tools="http://schemas.android.com/tools"
       3     android:layout_width="match_parent"
       4     android:layout_height="match_parent"
       5     android:paddingBottom="@dimen/activity_vertical_margin"
       6     android:paddingLeft="@dimen/activity_horizontal_margin"
       7     android:paddingRight="@dimen/activity_horizontal_margin"
       8     android:paddingTop="@dimen/activity_vertical_margin"
       9     tools:context=".MainActivity" >
      10 
      11     <Button
      12         android:id="@+id/btnClick"
      13         android:layout_width="wrap_content"
      14         android:layout_height="wrap_content"
      15         android:onClick="click()"
      16         android:text="開始動畫" />
      17 
      18 </RelativeLayout>

      2.然后是java代碼MainActivity.java,這個是重點

        1 package com.example.curveanim;
        2 
        3 import android.app.Activity;
        4 import android.os.Bundle;
        5 import android.view.View;
        6 import android.view.View.OnClickListener;
        7 import android.view.ViewGroup;
        8 import android.view.animation.AccelerateInterpolator;
        9 import android.view.animation.Animation;
       10 import android.view.animation.Animation.AnimationListener;
       11 import android.view.animation.AnimationSet;
       12 import android.view.animation.LinearInterpolator;
       13 import android.view.animation.TranslateAnimation;
       14 import android.widget.ImageView;
       15 import android.widget.LinearLayout;
       16 
       17 public class MainActivity extends Activity {
       18     private ViewGroup anim_mask_layout;// 動畫層
       19 
       20     @Override
       21     protected void onCreate(Bundle savedInstanceState) {
       22         super.onCreate(savedInstanceState);
       23         setContentView(R.layout.activity_main);
       24         findViewById(R.id.btnClick).setOnClickListener(new OnClickListener() {
       25 
       26             @Override
       27             public void onClick(View v) {
       28                 click(v);
       29             }
       30         });
       31     }
       32 
       33     private void click(View v) {
       34         int[] startLocation = new int[2];// 一個整型數組,用來存儲按鈕的在屏幕的X、Y坐標
       35         v.getLocationInWindow(startLocation);// 這是獲取購買按鈕的在屏幕的X、Y坐標(這也是動畫開始的坐標)
       36         ImageView ball = new ImageView(getApplicationContext());
       37         ball.setImageResource(R.drawable.sign);// 設置ball的圖片
       38         setAnim(ball, startLocation);// 開始執行動畫
       39     }
       40 
       41     private void setAnim(final View v, int[] startLocation) {
       42         anim_mask_layout = null;
       43         anim_mask_layout = createAnimLayout();
       44         anim_mask_layout.addView(v);// 把動畫小球添加到動畫層
       45         final View view = addViewToAnimLayout(anim_mask_layout, v, startLocation);
       46 
       47         // 計算位移
       48 
       49         TranslateAnimation translateAnimationX = new TranslateAnimation(0, 400, 0, 0);
       50         translateAnimationX.setInterpolator(new LinearInterpolator());
       51         translateAnimationX.setRepeatCount(Animation.INFINITE);// 動畫重復執行的次數
       52         translateAnimationX.setFillAfter(true);
       53 
       54         TranslateAnimation translateAnimationY = new TranslateAnimation(0, 0, 0, 400);
       55         translateAnimationY.setInterpolator(new AccelerateInterpolator());
       56         translateAnimationY.setRepeatCount(Animation.INFINITE);// 動畫重復執行的次數
       57         translateAnimationX.setFillAfter(true);
       58 
       59         AnimationSet set = new AnimationSet(false);
       60         set.setFillAfter(false);
       61         set.addAnimation(translateAnimationY);
       62         set.addAnimation(translateAnimationX);
       63         set.setDuration(2000);// 動畫的執行時間
       64         view.startAnimation(set);
       65 
       66         // 動畫監聽事件
       67         set.setAnimationListener(new AnimationListener() {
       68             // 動畫的開始
       69             @Override
       70             public void onAnimationStart(Animation animation) {
       71                 v.setVisibility(View.VISIBLE);
       72             }
       73 
       74             @Override
       75             public void onAnimationRepeat(Animation animation) {
       76             }
       77 
       78             // 動畫的結束
       79             @Override
       80             public void onAnimationEnd(Animation animation) {
       81                 v.setVisibility(View.GONE);
       82             }
       83         });
       84 
       85     }
       86 
       87     /**
       88      * @Description: 創建動畫層
       89      * @param
       90      * @return void
       91      * @throws
       92      */
       93     private ViewGroup createAnimLayout() {
       94         ViewGroup rootView = (ViewGroup) this.getWindow().getDecorView();
       95         LinearLayout animLayout = new LinearLayout(this);
       96         LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PA            RENT);
       97         animLayout.setLayoutParams(lp);
       98         animLayout.setId(Integer.MAX_VALUE);
       99         animLayout.setBackgroundResource(android.R.color.transparent);
      100         rootView.addView(animLayout);
      101         return animLayout;
      102     }
      103 
      104     private View addViewToAnimLayout(final ViewGroup parent, final View view, int[] location) {
      105         int x = location[0];
      106         int y = location[1];
      107         LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CON            TENT);
      108         lp.leftMargin = x;
      109         lp.topMargin = y;
      110         view.setLayoutParams(lp);
      111         return view;
      112     }
      113 }

       云盤分享下載鏈接:http://yunpan.cn/cFzVRfCpLwHz8  訪問密碼 e37f

      posted @ 2015-10-30 12:12  _YMW  閱讀(2707)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产成人精品三级麻豆| 久久这里只精品国产免费9| 国精产品自偷自偷ym使用方法| 成人午夜免费无码视频在线观看| 国产内射性高湖| 亚洲av综合色区在线观看| 精品一区二区不卡无码AV| 精品一区二区不卡免费| 无码高潮爽到爆的喷水视频app| 国产精品午夜福利91| 一本久久a久久精品综合| 女人香蕉久久毛毛片精品| 国产高清视频一区二区三区| 国产福利姬喷水福利在线观看| 国产免费无遮挡吃奶视频| 国产色一区二区三区四区| 99e久热只有精品8在线直播| 在线 欧美 中文 亚洲 精品| 国产一区二区三区禁18| 国产成人亚洲欧美二区综合| 蜜桃传媒av免费观看麻豆| 日本五十路熟女一区二区| 国产亚洲精品成人aa片新蒲金 | 国产成人亚洲综合91精品| 国产av普通话对白国语| 丁香五月婷激情综合第九色| 无码国产偷倩在线播放老年人| 亚洲人成电影在线天堂色| 深水埗区| 亚洲综合色婷婷中文字幕| 无码一区二区三区AV免费| 国产高清在线精品一本大道| 亚洲欧美日韩国产精品专区| 久久天堂无码av网站| 国产精品久久露脸蜜臀| 国产成人av综合色| 男女爽爽无遮挡午夜视频| 亚洲人成网网址在线看| 蜜桃视频网站| 内射人妻视频国内| 久久国产精品亚洲精品99|