安卓开源库之动画篇
本文主要介紹收集了筆者所用過(guò)的開(kāi)源動(dòng)畫(huà)庫(kù),達(dá)到一些比較好看的效果。
一個(gè)富有動(dòng)感的 Sheet
鏈接:
zzz40500/AndroidSweetSheet: 一個(gè)富有動(dòng)感的Sheet(選擇器)
效果如下
示例代碼
package com.zj.testsheet;import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.widget.RelativeLayout; import android.widget.Toast;import com.mingle.entity.MenuEntity; import com.mingle.sweetpick.BlurEffect; import com.mingle.sweetpick.RecyclerViewDelegate; import com.mingle.sweetpick.SweetSheet;import java.util.ArrayList;public class MainActivity extends AppCompatActivity {SweetSheet mSweetSheet;RelativeLayout rl;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);rl= (RelativeLayout) findViewById(R.id.rl);// SweetSheet 控件,根據(jù) rl 確認(rèn)位置mSweetSheet = new SweetSheet(rl);final ArrayList<MenuEntity> list = new ArrayList<>();//添加假數(shù)據(jù)MenuEntity menuEntity1 = new MenuEntity();menuEntity1.iconId = R.drawable.ic_account_child;//menuEntity1.titleColor = 0xff000000;menuEntity1.title = "code";MenuEntity menuEntity = new MenuEntity();menuEntity.iconId = R.drawable.ic_account_child;//menuEntity.titleColor = 0xffb3b3b3;menuEntity.title = "QQ";list.add(menuEntity1);list.add(menuEntity);list.add(menuEntity);list.add(menuEntity);list.add(menuEntity);list.add(menuEntity);list.add(menuEntity);list.add(menuEntity);list.add(menuEntity);list.add(menuEntity);list.add(menuEntity);list.add(menuEntity);list.add(menuEntity);//設(shè)置數(shù)據(jù)源 (數(shù)據(jù)源支持設(shè)置 list 數(shù)組,也支持從menu 資源中獲取)mSweetSheet.setMenuList(list);SweetSheet mSweetSheet2 = new SweetSheet(rl);//從menu 中設(shè)置數(shù)據(jù)源mSweetSheet2.setMenuList(R.menu.menu_sweet); //根據(jù)設(shè)置不同的 Delegate 來(lái)顯示不同的風(fēng)格.mSweetSheet.setDelegate(new RecyclerViewDelegate(true)); //根據(jù)設(shè)置不同Effect來(lái)設(shè)置背景效果:BlurEffect 模糊效果.DimEffect 變暗效果,NoneEffect 沒(méi)有效果.mSweetSheet.setBackgroundEffect(new BlurEffect(8)); //設(shè)置菜單點(diǎn)擊事件mSweetSheet.setOnMenuItemClickListener(new SweetSheet.OnMenuItemClickListener() {@Overridepublic boolean onItemClick(int position, MenuEntity menuEntity1) {//根據(jù)返回值, true 會(huì)關(guān)閉 SweetSheet ,false 則不會(huì).Toast.makeText(MainActivity.this, menuEntity1.title + " " + position, Toast.LENGTH_SHORT).show();return true;}});mSweetSheet.show();} }A fluent Android animation library。安卓動(dòng)畫(huà)庫(kù)
主要包括一些進(jìn)度條效果
鏈接:
gzu-liyujiang/ViewAnimator: A fluent Android animation library。安卓動(dòng)畫(huà)庫(kù),加入了一些不錯(cuò)的動(dòng)畫(huà),如:fall、shake、flash、fadeIn、rollOut……支持任意路徑動(dòng)畫(huà)(示例動(dòng)畫(huà)為不斷冒出來(lái)的桃心及飄雪),支持按SVG格式的path運(yùn)動(dòng)。部分已合并到原作者florent37的主分支
效果如下
示例代碼
private void animateParallel() {ViewAnimator.animate(mountain, image).dp().translationY(-1000, 0).alpha(0, 1).andAnimate(percent).scale(0, 1).andAnimate(text).dp().translationY(1000, 0).textColor(Color.BLACK, Color.WHITE).backgroundColor(Color.WHITE, Color.BLACK).waitForHeight().interpolator(new AccelerateDecelerateInterpolator()).duration(1000).thenAnimate(percent).custom(new AnimationListener.Update<TextView>() {@Overridepublic void update(TextView view, float value) {value = value * 100;view.setText(String.format(Locale.US, "%.0f%%", value));}}, 0, 1).andAnimate(image).rotation(0, 360).onStop(new AnimationListener.Stop() {@Overridepublic void onStop() {Intent intent = new Intent(StartActivity.this, MainActivity.class);startActivity(intent);}}).duration(1000).start(); }recycleView動(dòng)畫(huà)效果
鏈接:
gabrielemariotti/RecyclerViewItemAnimators: An Android library which provides simple Item animations to RecyclerView items
效果如下:
示例代碼
recyclerView= (RecyclerView) findViewById(R.id.id_recyclerview);
recyclerView.setLayoutManager(new GridLayoutManager(this, 4));
mAdapter=new HomeAdapter();
slideInBottomAnimatorAdapter=new SlideInBottomAnimatorAdapter(mAdapter,recyclerView);
recyclerView.setAdapter(slideInBottomAnimatorAdapter);
總結(jié)
- 上一篇: ThinkPHP入门
- 下一篇: 图像复原和维纳滤波