最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android使用動畫動態(tài)添加商品進購物車

 更新時間:2018年06月30日 15:09:04   作者:android_hdh  
這篇文章主要為大家詳細介紹了Android使用動畫動態(tài)添加商品進購物車,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Android添加商品進購物車的具體代碼,供大家參考,具體內(nèi)容如下

1、首先展示下效果圖

2、講一下思路,小球由加號位置運動到購物車位置,首先得獲得這兩個點在整個屏幕中的坐標,然后分別計算這兩個點的橫縱坐標的差值,再通過TranslateAnimation這個類設(shè)置小球在X、Y方向上的偏移量,最后通過AnimationSet這個類將這兩個動畫放在一起執(zhí)行。這是小球運動的動畫,還有就是購物車變大縮小的動畫。這個動畫通過ObjectAnimator的ofFloat的方法設(shè)置縮放,要注意的是當小球落下的時候,購物車才開始動畫,所以要設(shè)置一下setStartDelay這個方法。

3、具體的代碼我就貼一下動畫部分的代碼,如果想要這個Demo看下我最后貼出的Github的地址

@Override
  public void setAnim(View view) {
    // TODO Auto-generated method stub
    int[] start_location = new int[2];// 一個整型數(shù)組用來存儲按鈕在屏幕的X,Y坐標
    view.getLocationInWindow(start_location);// 購買按鈕在屏幕中的坐標
    buyImg = new ImageView(this);// 動畫的小圓圈
    buyImg.setImageResource(R.drawable.sign);// 設(shè)置buyImg的圖片
    setAnim(buyImg, start_location);
  }
 
  /**
   * hdh: 創(chuàng)建動畫層
   *
   * @return
   */
  private ViewGroup createAnimLayout() {
    ViewGroup rootView = (ViewGroup) this.getWindow().getDecorView();// 獲得Window界面的最頂層
    LinearLayout animLayout = new LinearLayout(this);
    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
    animLayout.setLayoutParams(lp);
    //animLayout.setId();
    animLayout.setBackgroundResource(android.R.color.transparent);
    rootView.addView(animLayout);
    return animLayout;
  }
 
  /**
   * hdh:
   *
   * @param vp
   * @param view
   * @param location
   * @return
   */
  private View addViewToAnimLayout(final ViewGroup vp, final View view, int[] location) {
    int x = location[0];
    int y = location[1];
    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
    lp.leftMargin = x;
    lp.topMargin = y;
    view.setLayoutParams(lp);
    return view;
  }
 
  /**
   * hdh:動畫
   *
   * @param v
   * @param start_location
   */
  private void setAnim(final View v, int[] start_location) {
    anim_mask_layout = null;
    anim_mask_layout = createAnimLayout();
    anim_mask_layout.addView(v);
    View view = addViewToAnimLayout(anim_mask_layout, v, start_location);
    int[] end_location = new int[2];// 存儲動畫結(jié)束位置的X,Y坐標
    text_chart_num.getLocationInWindow(end_location);// 將購物車的位置存儲起來
    // 計算位移
    int endX = end_location[0] - start_location[0];// 動畫位移的X坐標
    int endY = end_location[1] - start_location[1];// 動畫位移的y坐標
    TranslateAnimation translateAnimationX = new TranslateAnimation(0, endX, 0, 0);
    translateAnimationX.setInterpolator(new LinearInterpolator());// 設(shè)置此動畫的加速曲線。默認為一個線性插值。
    translateAnimationX.setRepeatCount(0);// 動畫重復(fù)的次數(shù)
    translateAnimationX.setFillAfter(true);
 
    TranslateAnimation translateAnimationY = new TranslateAnimation(0, 0, 0, endY);
    translateAnimationY.setInterpolator(new AccelerateInterpolator());
    translateAnimationY.setRepeatCount(0);// 動畫重復(fù)次數(shù)
    translateAnimationY.setFillAfter(true);
 
    AnimationSet set = new AnimationSet(false);
    set.setFillAfter(false);
    set.addAnimation(translateAnimationX);
    set.addAnimation(translateAnimationY);
    set.setDuration(1000);
    view.startAnimation(set);
    set.setAnimationListener(new Animation.AnimationListener() {
 
      @Override
      public void onAnimationStart(Animation animation) {
        // TODO Auto-generated method stub
        v.setVisibility(View.VISIBLE);
      }
 
      @Override
      public void onAnimationRepeat(Animation animation) {
        // TODO Auto-generated method stub
 
      }
 
      @Override
      public void onAnimationEnd(Animation animation) {
        // TODO Auto-generated method stub
        v.setVisibility(View.GONE);
      }
    });
    ObjectAnimator anim = ObjectAnimator//
        .ofFloat(view, "scale", 1.0F, 1.5F, 1.0f)//
        .setDuration(500);//
    anim.setStartDelay(1000);
    anim.start();
    anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
      @Override
      public void onAnimationUpdate(ValueAnimator animation) {
        float cVal = (Float) animation.getAnimatedValue();
        image_chart.setScaleX(cVal);
        image_chart.setScaleY(cVal);
        text_chart_num.setScaleX(cVal);
        text_chart_num.setScaleY(cVal);
      }
    });
  }

4、GitHub地址:點擊打開鏈接

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java4Android開發(fā)教程(二)hello world!

    Java4Android開發(fā)教程(二)hello world!

    一般的開發(fā)教程都是介紹完安裝配置開發(fā)環(huán)境,緊接著來一篇hello world,算是國際慣例吧,我們當然也不能免俗,哈哈,各位看官請看好了!
    2014-10-10
  • Android App中制作仿MIUI的Tab切換效果的實例分享

    Android App中制作仿MIUI的Tab切換效果的實例分享

    這篇文章主要介紹了Android App中制作仿MIUI的Tab切換效果的實例分享,實現(xiàn)具有跟隨手指滾動而滾動功能的ViewPagerIndicator,需要的朋友可以參考下
    2016-04-04
  • android 退出程序解決內(nèi)存釋放的問題

    android 退出程序解決內(nèi)存釋放的問題

    做Android項目的時候發(fā)現(xiàn)一個問題:當應(yīng)用程序退出了,點擊"設(shè)置"查看應(yīng)用程序,界面顯示著可以點擊"強制關(guān)閉 由于這個問題我發(fā)現(xiàn)了一個更加嚴重的問題,那就是,在我應(yīng)用程序退出之后,系統(tǒng)并沒有釋放掉我應(yīng)用程序所占內(nèi)存
    2012-11-11
  • Android自定義倒計時按鈕

    Android自定義倒計時按鈕

    這篇文章主要為大家詳細介紹了Android自定義倒計時按鈕,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Android Studio 中運行 groovy 程序的方法圖文詳解

    Android Studio 中運行 groovy 程序的方法圖文詳解

    這篇文章主要介紹了Android Studio 中 運行 groovy 程序的方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • Android星級評分條的實現(xiàn)代碼

    Android星級評分條的實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了Android星級評分條的實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Android自定義View播放Gif動畫的示例

    Android自定義View播放Gif動畫的示例

    本篇文章主要介紹了Android自定義View播放Gif動畫的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • android保存Bitmap圖片到指定文件夾示例

    android保存Bitmap圖片到指定文件夾示例

    android把Bitmap圖片保存到指定文件夾中,具體實現(xiàn)方法如下,感興趣的朋友可以參考下哈,希望對大家有所幫助
    2013-06-06
  • android自定義組件實現(xiàn)儀表計數(shù)盤

    android自定義組件實現(xiàn)儀表計數(shù)盤

    這篇文章主要為大家詳細介紹了android自定義組件實現(xiàn)儀表計數(shù)盤,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Phonegap使用拍照功能時的內(nèi)存問題

    Phonegap使用拍照功能時的內(nèi)存問題

    最近幾天在學(xué)習使用phonegap進行android應(yīng)用的開發(fā),網(wǎng)上的資料比較亂,個人參考了很多資料,也試驗了很多次,一直在摸索,總算小有心得,這此過程中也遇到了一些問題,這里給大家分享下解決Phonegap使用拍照功能時的內(nèi)存問題的方法,這里簡單的整理一下
    2015-05-05

最新評論

禄丰县| 温泉县| 宜州市| 长顺县| 鄂托克旗| 齐齐哈尔市| 阿荣旗| 怀安县| 鄂托克旗| 昔阳县| 娄烦县| 通河县| 开远市| 濮阳县| 咸宁市| 延津县| 临夏县| 桃园市| 冷水江市| 常熟市| 江津市| 扎兰屯市| 贡觉县| 吉首市| 乳源| 罗山县| 焦作市| 阿瓦提县| 丽水市| 洪泽县| 沅陵县| 北碚区| 大洼县| 东山县| 栾川县| 孟连| 蛟河市| 靖安县| 临沂市| 刚察县| 瓦房店市|