开源一个动画demo
2017-06-21 13:23
387 查看
源码下载地址:https://github.com/Sherchen/AnimationsDemo
,欢迎star, fork
https://github.com/Skykai521/StickerCamera
https://github.com/gogopop/CameraKit-Android
https://github.com/ksoichiro/Android-ObservableScrollView
https://github.com/wasabeef/recyclerview-animators
https://github.com/wasabeef/Blurry
,欢迎star, fork
效果图
Transition动画
if api > 21, use activity transition animation, otherwise use Transitions-Everywhereif(TransitionHelper.isSysTransitionEnable()) { final Pair<View, String>[] pairs = TransitionHelper.createSafeTransitionParticipants( HomeActivity.this, false, new Pair<>((ImageView) view.findViewById(R.id.iv_item_profile) , getString(R.string.transition_image)) ); Intent intent = new Intent(HomeActivity.this, DetailActivity.class); intent.putExtra(DetailActivity.KEY_USE_SYS_TRANSITION, true); TransitionsEntity entity = new TransitionsEntity(); entity.setUrl(adapter.getItem(position).getUrl()); intent.putExtra(DetailActivity.KEY_ENTITY, entity); ActivityOptionsCompat transitionActivityOptions = ActivityOptionsCompat.makeSceneTransitionAnimation(HomeActivity.this, pairs); startActivity(intent, transitionActivityOptions.toBundle()); }else{ int[] locs = new int[2]; clickImage = (ImageView) view.findViewById(R.id.iv_item_profile); clickImage.getLocationOnScreen(locs); clickOrigin = new TransitionsEntity(); clickOrigin.setLeft(locs[0]); clickOrigin.setTop(locs[1]); clickOrigin.setWidth(clickImage.getWidth()); clickOrigin.setHeight(clickImage.getHeight()); HomeEntity item = (HomeEntity) adapter.getItem(position); clickOrigin.setUrl(item.getUrl()); GlideUtils.displayImage(getApplicationContext(), ivTrans, item.getUrl(), R.drawable.def_placeholder); Intent intent = new Intent(HomeActivity.this, DetailActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); intent.putExtra(DetailActivity.KEY_ENTITY, false); intent.putExtra(DetailActivity.KEY_ENTITY, clickOrigin); startActivityForResult(intent, REQUEST_CODE_DEF); overridePendingTransition(0, 0); } } ivDetail.setTranslationX(lastTranX); ivDetail.setTranslationY(lastTranY); ivDetail.setVisibility(View.VISIBLE); rlDetailRoot.postDelayed(new Runnable() { @Override public void run() { TransitionManager.beginDelayedTransition(rlDetailRoot, new TranslationTransition().setPathMotion(new ArcMotion()).setDuration(200)); ivDetail.setTranslationX(0); ivDetail.setTranslationY(0); } }, 20);
blur动画
use BlurryBlurry.with(getActivity()) .radius(10) .sampling(newSampling) .async(new Blurry.ImageComposer.ImageComposerListener() { @Override public void onImageReady(BitmapDrawable drawable) { if(lastAlpha == 1f){ ivDetailHeader.setImageBitmap(srcHeaderBg); } else { ivDetailHeader.setImageDrawable(drawable); } } }) .from(srcHeaderBg) .into(ivDetailHeader)
recyclerview动画
use recyclerview-animationsrvDetailEvents.setItemAnimator(new SlideInLeftAnimator()); rvDetailEvents.getItemAnimator().setAddDuration(500); rvDetailEvents.getItemAnimator().setRemoveDuration(500);
使用第三方library
https://github.com/Hitomis/transfereehttps://github.com/Skykai521/StickerCamera
https://github.com/gogopop/CameraKit-Android
https://github.com/ksoichiro/Android-ObservableScrollView
https://github.com/wasabeef/recyclerview-animators
https://github.com/wasabeef/Blurry
相关文章推荐
- Android UI开发第十九篇——介绍一个开源的gifview——Android显示GIF动画
- Android UI开发第十九篇——介绍一个开源的gifview——Android显示GIF动画
- 一个酷炫的button变化动画开源库源码分析—Android morph Button(一)
- 第三方开源动画库EasyAnimation中一个小bug的修复
- 第三方开源动画库EasyAnimation中一个小bug的修复
- 开源工作流引擎Shark入门3——与业务系统结合的一个demo
- Android Studio精彩案例(六)《使用一个Demo涵盖补间动画所有知识》
- yii2 一个开源demo
- 介绍一个Android开源项目:GifView——Android显示GIF动画
- demo: 全页面CSS3动画的一个参考例子
- Android 方向传感器 + Low Pass Filter +补间动画的一个Demo
- 介绍一个Android开源项目:GifView——Android显示GIF动画
- quartz简单demo(一个简单易用的任务调度开源框架)
- 利用属性动画Animator实现的一个小demo,
- 一个Gmail刷新动画的Demo
- Android UI开发第十九篇——介绍一个开源的gifview——Android显示GIF动画
- Uinty3D 一个动画播放以及射线查询的Demo
- 【VC++游戏开发#八】2D篇 —— 动画:一个跑酷游戏的小Demo
- iOS-一个弹出菜单动画视图开源项目分享
- 一个从底部进入的activity转场动画Demo