android 图标切换动画效果,BezierCurve
运用贝塞尔曲线描绘android翻页效果(浏览图片时,图片间切换达到书本翻页的效果).
效果图:
如何使用首先你需要创建Pager实例,并添加到布局中DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
screenWidth = displayMetrics.widthPixels;//获取屏幕的宽度
screenHeight = displayMetrics.heightPixels;
pager = new Pager(this, screenWidth, screenHeight);
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
addContentView(pager, layoutParams);//将pager添加到布局中
Pager是核心代码,由它来控制手势实现翻书的。
2. 分别创建俩组Bitmap、canvas。代表当前页和下一页的mCurPageBitmap = Bitmap.createBitmap(screenWidth, screenHeight, Bitmap.Config.ARGB_8888);
mNextPageBitmap = Bitmap.createBitmap(screenWidth, screenHeight, Bitmap.Config.ARGB_8888);
mCurPageCanvas = new Canvas(mCurPageBitmap);
mNextPageCanvas = new Canvas(mNextPageBitmap);
pager.setBitmaps(mCurPageBitmap, mCurPageBitmap);//设置bitmap到pager中,初始时可以都设置成当前的bitmap
3. 让Pager监听手势操作pager.setOnTouchListener(new View.OnTouchListener() {
// private int count = pages.length;
// private int currentIndex = 0;
// private int lastIndex = 0;
// private Bitmap lastBitmap = null;
@Override
public boolean onTouch(View v, MotionEvent e) {
boolean ret = false;
if (v == pager) {
if (e.getAction() == MotionEvent.ACTION_DOWN) {
pager.calcCornerXY(e.getX(), e.getY());//获得触碰的起始点位置,用于判断向左翻还是向右翻。
// lastBitmap = currentBitmap;
// lastIndex = currentIndex;
//
// pagerFactory.onDraw(mCurPageCanvas, currentBitmap);
// if (pager.DragToRight()) { // 向右滑动,显示前一页
// if (currentIndex == 0) return false;
// pager.abortAnimation();
// currentIndex--;
// loadImage(mNextPageCanvas, currentIndex);
// } else { // 向左滑动,显示后一页
// if (currentIndex + 1 == count) return false;
// pager.abortAnimation();
// currentIndex++;
// loadImage(mNextPageCanvas, currentIndex);
// }
} else if (e.getAction() == MotionEvent.ACTION_MOVE) {
} else if (e.getAction() == MotionEvent.ACTION_UP) {
// if (!pager.canDragOver()) {
// currentIndex = lastIndex;
// currentBitmap = lastBitmap;
// }
}
ret = pager.doTouchEvent(e);
return ret;
}
return false;
}
});
未注释的部分是必须要有的。
4. 加载图片pagerFactory = new PagerFactory(getApplicationContext());private void loadImage(final Canvas canvas, int index) {
Bitmap bitmap = getBitmap(pages[index]);
currentBitmap = bitmap;
pagerFactory.onDraw(canvas, bitmap);
pager.setBitmaps(mCurPageBitmap, mNextPageBitmap);
pager.postInvalidate();
}
PagerFactory是用于渲染Bitmap的。
5. 加载第一张图片loadImage(mCurPageCanvas, 0);
android 图标切换动画效果,BezierCurve相关推荐
- android 背景切换动画效果代码,关于Android shape gradient背景渐变
百度后,发现渐变色不仅可以根据xml来实现,也可以用java代码来实现,由于目前没有那么多时间,只记录xml实现的方法:以后在记录Java实现的代码. 通过Shape gradient标签来实现 首先 ...
- android 背景切换动画效果代码,在Android应用中以模糊效果设置背景图片
我试图使列表视图上的背景图像模糊,但是我尝试按照教程进行操作,但它不起作用.任何人都请指教,谢谢. 主要活动 public class IngredientCategoryMain extends A ...
- Android 动画之View动画效果和Activity切换动画效果
View动画效果: 1.>>Tween动画 通过对View的内容进行一系列的图形变换(平移.缩放.旋转.透明度变换)实现动画效果,补间动画需要使用<set>节点作为根节点,子节 ...
- android学习笔记---56_activity切换动画与页面切换动画,自定义activity窗口切换动画效果的实现.
2013/5/17 Java技术qq交流群:JavaDream:251572072 56_activity切换动画与页面切换动画 ----------------------------------- ...
- android动画篇——仿小米计算器切换动画效果
实现思路 此效果实现用到了:LayoutTransition和ObjectAnimator的相关知识 思路:当点击切换按钮时顶部ViewGroup和左侧ViewGroup可见性设置为Gone,并自动开 ...
- android+百叶窗动画效果,js实现横向百叶窗效果网页切换动画效果的方法
本文实例讲述了js实现横向百叶窗效果网页切换动画效果的方法.分享给大家供大家参考.具体分析如下: 这是一款很简洁但是效果却不错的网页切换效果,点击新网页后,网页会出现蓝白相间的百叶窗线条自动切换,直到 ...
- Android中具有动画效果的图片资源
Android动画和Transition系列文章 初识属性动画--使用Animator创建动画 再谈属性动画--介绍以及自定义Interpolator插值器 三谈属性动画--Keyframe以及Vie ...
- android activity切换动画
今天,实在没有什么可以写的内容,在网上找了好久,才决定写今天的内容.自己还是想保持每天写博客的习惯. 在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下如何实现左 ...
- android 应用切换动画,怎么在Android应用中利用Activity对动画进行切换
怎么在Android应用中利用Activity对动画进行切换 发布时间:2020-11-27 16:19:53 来源:亿速云 阅读:107 作者:Leah 今天就跟大家聊聊有关怎么在Android应用 ...
最新文章
- 隐马尔科夫模型之Baum-Wech算法
- 他开发了 redux,昨晚“字节一面”却挂了?
- QT官方第三方开源工具
- https的那些事儿
- App市场的“繁荣”背后 隐藏令人唏嘘的真相
- iometer-2006_07_27.common-src编译
- windows分辨率修改工具_Windows 字体优化,这几个办法能帮你解决
- 8 大错误SQL用法,你肯定踩过坑!
- python增强对比度_python增加图像对比度的方法
- python类创建对象底层实现机制(简单)
- 1059: [ZJOI2007]矩阵游戏 - BZOJ
- 【问题记录】python 函数 传入一个对象返回一个对象值得注意
- android java 调试快捷键_最强Android studio 使用快捷键和调试技巧
- 游戏场景设计探究:冬夏季节光色模型
- Pycharm调试卡在“Collecting data...”
- 日期时间编辑器(模拟QDateTimeEdit的自定义控件)——QML
- Print Label with Barcode Using ZPLII
- 索骥馆-DIY硬盘之《新手3周学通硬盘芯片级维修》扫描版[PDF]
- 推荐系统架构及流程说明
- C++ API 设计 07 第二章