詳解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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- Android把商品添加到購物車的動畫效果(貝塞爾曲線)
- Android中貝塞爾曲線的繪制方法示例代碼
- android中貝塞爾曲線的應(yīng)用示例
- Android貝塞爾曲線初步學習第三課 Android實現(xiàn)添加至購物車的運動軌跡
- Android 利用三階貝塞爾曲線繪制運動軌跡的示例
- Android仿餓了么加入購物車旋轉(zhuǎn)控件自帶閃轉(zhuǎn)騰挪動畫的按鈕效果(實例詳解)
- Android實現(xiàn)購物車添加物品的動畫效果
- Android實現(xiàn)添加商品到購物車動畫效果
- Android使用動畫動態(tài)添加商品進購物車
- Android利用二階貝塞爾曲線實現(xiàn)添加購物車動畫詳解
相關(guān)文章
Android 之BottomsheetDialogFragment仿抖音評論底部彈出對話框效果(實例代碼)
這篇文章主要介紹了Android 中之BottomsheetDialogFragment仿抖音評論底部彈出對話框效果,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04Kotlin如何安全訪問lateinit變量的實現(xiàn)
這篇文章主要介紹了Kotlin如何安全訪問lateinit變量的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-01-01淺談Android開發(fā)者2017年最值得關(guān)注的25個實用庫
本篇文章主要介紹了Android開發(fā)者2017年最值得關(guān)注的25個庫,非常具有實用價值,需要的朋友可以參考下2017-09-09Android Studio 視頻播放失敗 start called in state1 異常怎么解決
很多朋友問小編在使用MediaPlayer播放音頻時報出 E/MediaPlayerNative: start called in state 1, mPlayer(0x0)問題,該如何處理呢,今天小編給大家?guī)砹薃ndroid Studio 視頻播放失敗 start called in state1 異常問題,需要的朋友可以參考下2020-03-03Android 數(shù)據(jù)存儲之 FileInputStream 工具類及FileInputStream類的使用
這篇文章主要介紹了Android 數(shù)據(jù)存儲之 FileInputStream 工具類及FileInputStream類的使用的相關(guān)資料,需要的朋友可以參考下2015-11-11