android长按加入购物车,《Android APP可能有的东西》之UI篇:加入购物车动画
很多電商app的加入購物車的動作會要求加上動畫效果:飛進(jìn)購物車,想來也合理,在listview界面時商品快速加入購物車,一直toast用戶加入成功好像不太正常,所以添加一個動畫,用戶自然就懂了,而且也挺美觀。這里記錄一個這樣的demo,demo里面的注釋足夠詳細(xì),這里也會給出部分代碼說明。
上效果
動畫效果
上說明
使用方法1:
如果現(xiàn)成的效果還不夠自己想要的效果,下載demo,把demo中l(wèi)ibrary中的兩個類拷貝出來放進(jìn)自己的view文件夾,然后直接去修改它們,修改成滿足自己需求的效果。
使用方法2:
如果覺得現(xiàn)成的效果足夠滿足自己需求了直接使用gradle依賴的方式:
1.Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
2.Add the dependency:
dependencies {
compile 'com.github.paradoxie:ShopAnimDemo:0.1'
}
自定義說明:
//啟動動畫
public void startAnim(View v) {
int[] end_location = new int[2];
int[] start_location = new int[2];
v.getLocationInWindow(start_location);// 獲取購買按鈕的在屏幕的X、Y坐標(biāo)(動畫開始的坐標(biāo))
car.getLocationInWindow(end_location);// 這是用來存儲動畫結(jié)束位置,也就是購物車圖標(biāo)的X、Y坐標(biāo)
buyImg = new ImageView(this);// buyImg是動畫的圖片
buyImg.setImageResource(R.mipmap.sign);// 設(shè)置buyImg的圖片
// mAniManager.setTime(5500);//自定義時間
mAniManager.setAnim(this, buyImg, start_location, end_location);// 開始執(zhí)行動畫
mAniManager.setOnAnimListener(new AniManager.AnimListener() {
@Override
public void setAnimBegin(AniManager a) {
//動畫開始時的監(jiān)聽
}
@Override
public void setAnimEnd(AniManager a) {
//動畫結(jié)束后的監(jiān)聽
num += 5;
buyNumView.setText(num + "");
buyNumView.show();
}
});
}
寫一個點擊事件中可直接調(diào)用的方法,內(nèi)部實現(xiàn)為動畫的配置,包括:動畫的起點,即點擊view的位置;動畫的終點,即購物車圖標(biāo)的位置;界面上飛來飛去那個小圖標(biāo);動畫的持續(xù)時間;然后調(diào)用方法開始執(zhí)行動畫。這里給出了動畫開始和結(jié)束的監(jiān)聽回調(diào),因為一般在結(jié)束之后是需要修改一些顯示狀態(tài)的,具體查看demo實現(xiàn)效果。
另外,在圖標(biāo)之上有一個數(shù)字標(biāo)簽BadgeView,使用了自定義控件實現(xiàn),使用時具體配置:
buyNumView = new BadgeView(this, car);//把這個數(shù)字標(biāo)簽放在購物車圖標(biāo)上
buyNumView.setBadgePosition(BadgeView.POSITION_CENTER);//放在圖標(biāo)中心
buyNumView.setTextColor(Color.WHITE);//數(shù)字顏色
buyNumView.setBadgeBackgroundColor(Color.BLUE);//背景顏色
buyNumView.setTextSize(9);//數(shù)字大小
注釋給得十分清楚了,可去修改自己想要的效果。具體的使用配置只有這些,很容易理解哇
源碼中獲取ViewGroup時使用的是Activity.getWindow().getDecorView(),所以理論上支持所有activity和fragment中實現(xiàn)此效果,具體木有測試,如果有問題可以根據(jù)情況修改。本人正式項目中就是在fragment實現(xiàn)這個效果,雖然不是用的這個依賴庫。
【UI篇】擴(kuò)展閱讀
本文作者:paradoxie
個人主頁:謝盒盒的小黑屋,不止說技術(shù)
簡書地址:簡書主頁,專注說技術(shù)
github地址:paradoxie
轉(zhuǎn)載請注明出處,蟹蟹!
-------我的夢想真的是做一條咸魚!
總結(jié)
以上是生活随笔為你收集整理的android长按加入购物车,《Android APP可能有的东西》之UI篇:加入购物车动画的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据显示:Salesforce 旧金山总
- 下一篇: 基于android 定位系统,基于And