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

首頁 > 系統 > Android > 正文

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

2019-10-22 18:29:38
字體:
來源:轉載
供稿:網友

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

效果圖如下:

Android,購物車動畫,購物車頁面

思路:

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

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

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

1.因為進入頁面,所有的商品個數都顯示為零,所以我用 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坐標,并且設置動畫圖片:

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

然后是開始執行動畫:

   private void setAnim(final View v, int[] startLocation) {    anim_mask_layout = null;    anim_mask_layout = createAnimLayout(); //創建動畫層    anim_mask_layout.addView(v);//把動畫小球添加到動畫層    final View view = addViewToAnimLayout(anim_mask_layout, v,        startLocation);    int[] endLocation = new int[2];// 存儲動畫結束位置的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);// 動畫重復執行的次數    translateAnimationX.setFillAfter(true);    TranslateAnimation translateAnimationY = new TranslateAnimation(0, 0,        0, endY);    translateAnimationY.setInterpolator(new AccelerateInterpolator());    translateAnimationY.setRepeatCount(0);// 動畫重復執行的次數    translateAnimationX.setFillAfter(true);    final AnimationSet set = new AnimationSet(false);    set.setFillAfter(false);    set.addAnimation(translateAnimationY);    set.addAnimation(translateAnimationX);    set.setDuration(800);// 動畫的執行時間    view.startAnimation(set);    // 動畫監聽事件    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      }      // 動畫的結束      @Override      public void onAnimationEnd(Animation animation) {        v.setVisibility(View.GONE);        set.cancel();        animation.cancel();      }    });  }

需要注意的是,當動畫結束必須關閉動畫:

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

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

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

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


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 上高县| 嘉定区| 乾安县| 平罗县| 南昌市| 建德市| 红安县| 天水市| 平昌县| 江西省| 壶关县| 肇州县| 交城县| 古浪县| 湖州市| 顺义区| 沂水县| 井陉县| 黄浦区| 尤溪县| 翁源县| 沙雅县| 宝应县| 巨野县| 东莞市| 洪泽县| 绥滨县| 苏州市| 闽侯县| 阳城县| 株洲县| 常德市| 阳江市| 平遥县| 绵阳市| 定结县| 迭部县| 高陵县| 米脂县| 永州市| 新泰市|