欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Android實現(xiàn)購物車頁面及購物車效果(點擊動畫)

 更新時間:2017年08月22日 11:06:10   作者:可惜沒_如果  
本篇文章主要介紹了詳解Android實現(xiàn)購物車頁面及購物車效果(點擊動畫),非常具有實用價值,需要的朋友可以參考下

本文介紹了Android實現(xiàn)購物車頁面及購物車效果(點擊動畫),分享給大家,具體如下:

效果圖如下:

思路:

(1)思考每個條目中的數(shù)字的更新原理。

(2)購物車的動畫效果。

(3)購物清單怎么顯示(這個我暫時沒有寫,如果需要的話,可以在我的簡書下給我留言)。

1.因為進入頁面,所有的商品個數(shù)都顯示為零,所以我用 ArrayList<HashMap<String, Object>> data,把商品集合都附上零:

    //下面把data都添加0,為了剛開始顯示時,顯示的是0
    for (int i = 0; i < list.size(); i++) {
      HashMap<String, Object> myhashmap = new HashMap<String, Object>();
      myhashmap.put("number", "" + 0);
      data.add(myhashmap);
    }

然后把data傳入Adapter:

adapter = new MyAdapter(data);

當我們對商品進行增減時,我們可以通過hashmap來更改,如下是增加商品的部分代碼:

  b = Integer.parseInt((String) data.get(position).get(
              "number"));
          data.get(position).put("number", "" + (b + 1));

2.購物車動畫效果:

首先獲取點擊時的XY坐標,并且設(shè)置動畫圖片:

 // ball是個imageview
 startLocation = new int[2];// 一個整型數(shù)組,用來存儲按鈕的在屏幕的X、Y坐標
          view.getLocationInWindow(startLocation);// 這是獲取購買按鈕的在屏幕的X、Y坐標(這也是動畫開始的坐標)
          ball = new ImageView(MainActivity.this);
          ball.setImageResource(R.mipmap.sign);// 設(shè)置動畫的圖片我的是一個小球(R.mipmap.sign)

然后是開始執(zhí)行動畫:

   private void setAnim(final View v, int[] startLocation) {
    anim_mask_layout = null;
    anim_mask_layout = createAnimLayout(); //創(chuàng)建動畫層
    anim_mask_layout.addView(v);//把動畫小球添加到動畫層
    final View view = addViewToAnimLayout(anim_mask_layout, v,
        startLocation);
    int[] endLocation = new int[2];// 存儲動畫結(jié)束位置的X、Y坐標
    re_zhongcai_tanchu.getLocationInWindow(endLocation);// re_zhongcai_tanchu是那個拋物線最后掉落的控件

    // 計算位移
    int endX = 0 - startLocation[0] + 40;// 動畫位移的X坐標
    int endY = endLocation[1] - startLocation[1];// 動畫位移的y坐標
    TranslateAnimation translateAnimationX = new TranslateAnimation(0,
        endX, 0, 0);
    translateAnimationX.setInterpolator(new LinearInterpolator());
    translateAnimationX.setRepeatCount(0);// 動畫重復執(zhí)行的次數(shù)
    translateAnimationX.setFillAfter(true);

    TranslateAnimation translateAnimationY = new TranslateAnimation(0, 0,
        0, endY);
    translateAnimationY.setInterpolator(new AccelerateInterpolator());
    translateAnimationY.setRepeatCount(0);// 動畫重復執(zhí)行的次數(shù)
    translateAnimationX.setFillAfter(true);

    final AnimationSet set = new AnimationSet(false);
    set.setFillAfter(false);
    set.addAnimation(translateAnimationY);
    set.addAnimation(translateAnimationX);
    set.setDuration(800);// 動畫的執(zhí)行時間
    view.startAnimation(set);
    // 動畫監(jiān)聽事件
    set.setAnimationListener(new Animation.AnimationListener() {
      // 動畫的開始
      @Override
      public void onAnimationStart(Animation animation) {
        v.setVisibility(View.VISIBLE);
        //  Log.e("動畫","asdasdasdasd");
      }

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

      // 動畫的結(jié)束
      @Override
      public void onAnimationEnd(Animation animation) {
        v.setVisibility(View.GONE);
        set.cancel();
        animation.cancel();
      }
    });

  }

需要注意的是,當動畫結(jié)束必須關(guān)閉動畫:

  v.setVisibility(View.GONE);
        set.cancel();
        animation.cancel();

購物車的彈出清單功能,我沒有寫,需要的話,可以去我的簡書留言.

github地址:https://github.com/javaexception/ShoppingCart

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

相關(guān)文章

最新評論