http://livehappy.iteye.com/blog/1004399转自:
之后我就想,我自己做一个看看,如果能做出来更好了。通过我的努力还真让我给弄出来了一个简单的翻牌动画。?
简单流程:?
? 这个翻牌其实并不是立体那种翻转,而是通过收缩和伸展来完成的。?
?? 有两张图片,一张为背面:?
?
?? 一张为正面:?
?
? 以扑克牌本身的中心点为轴,两边像中心收缩;?
? 当背面收缩到完全没有后,通过对动画的监听器(AnimationListener)把牌换成正面,在通过伸展动画效果到完全展开。所有动画完成后就形成了一个完整的翻牌动画效果。?
?
我在做这个的时候,在网上也找过多个动画在一起的例子,但是我发现他们都是互相copy的,没有真正自己仔细研究过的,如果我不是自己研究了一下,也不知道其中的种种。?
我先把我完成的放上来,在这个过程中遇到的问题和经验在最后写。?
布局文件中,我只放入了一个ImageView控件,用来显示图片的。?
main.xml:?
这个xml我想不用我过多解释了。?
Activit01.java:?
那么还需要两个实现动画的配置文件?
back_scale.xml:?
fromXScale?起始时x坐标的尺寸,设置为1.0说明是整个图片x轴的长度?
toXScale?? 结束时x坐标的尺寸,设置为0.0说明整个图片x轴完全收缩到无?
fromYScale 起始时y坐标的尺寸,设置为1.0说明是整个图片y轴的长度?
toYScale?? 结束时y坐标的尺寸,设置为1.0说明是在收缩时y轴的长度保持不变?
那么他们的变化都是先对于某一点来变化的,因此pivotX和pivotY就是确定这个点的位置。?
在一个数轴上(原点为图片的左上角,x轴和y轴的射线分别是向右和向下,我测试过):?
pivotX="50%"?说明是以图片本身的一半作为x轴的坐标;?
pivotY="50%"?说明是以图片本身的一半作为y轴的坐标;?
所以圆心点的坐标就是(0.5x,0.5y)。(x y是原图片的长和高)?
此效果就是以这个点的y轴为轴,x轴不断减小到0。?
duration?是设置的动画执行时间 因为要体现出翻牌的效果 所以不能太慢 也不能一下就翻开?
同样也有一个伸展的效果配置文件?
front.xml:?
属性都和上面的同理,只不过是以圆心点为轴像两边伸展到完全展开。?
到此,这个效果就算完成了。然后来说说我做的过程中的问题吧。?
做之前也到网上查了,也有人做了一些多个动画的例子,不过不是我这样的。不说copy的问题,单说代码。举个例子:?
alpha 淡入淡出,一个图片我想实现淡入淡出,是完全可以的。无论是用配置文件把两个配置好的alpha放在一个set中还是用代码都放在AnimationSet中都能实现。而反过来要实现淡出淡入用这样的方式就不可以。正常我们都会想,谁放在第一个就先执行,但我测试的时候发现淡出(alpha_out)和淡入(alpaha_in)无论谁先放在AnimationSet中都是先执行淡入动画。只有用Animation的AnimationListener监听器来监听它的执行,然后当淡出动画结束后在执行淡入才可以实现要求的效果。所以我上面的Activit01中为什么要用到AnimationListener来做这个动画。我不知道其他的人发现没发现这个问题。?
最后我又以xml的形式又去验证了一下,把两个alpha都放入一个xml中,同样是这个问题,无论谁在上面还是先执行淡入的动画。其他的动画也一样,我都依次做了测试。?
那么也就是说:在执行动画的时候,它会先去找fromX的最小值的那个动画无论是alpha的fromAlpha还是scale的fromXScale等等都一样,只要是最小的它就先执行,然后往最大的执行。所以大家在做此类动画的时候一定要注意。?
同样代码奉上,提供下载。?
我的环境都是windows xp eclipse3.5 sdk2.2 jdk1.6
详细解决方案
android scale兑现翻牌动画效果
热度:80 发布时间:2016-05-01 18:35:02.0
昨天同事说他想弄个玩扑克的游戏,发牌,计算分数等。问我会不会做翻牌的动画,我说我也没做过,直接告诉他:你查查API文档之类的自己参考一下。?
相关解决方案
- android 读取byte[]中的元素解决方案
- android 标题栏兑现方式
- android 中Activity向BroadcastReceiver发送数据,该怎么解决
- Android 4.0 为什么模拟器老是提示小弟我谷歌拼音输入法已停止
- android:getSharedPreferences() 这是哪个类的方法解决思路
- android 怎么判断一个程序是否联网
- android 大量数据按周分组,该如何解决
- android RadioButton如何设置默认选中
- ksoap2-android-这个包,连接webService怎么设置超时
- android 怎么重新设置锚点
- android UI界面设计解决方案
- android 图片对象获取的有关问题
- android 怎么调用淘宝支付宝接口
- Android 沿袭InputMethodService自定义输入法
- android 关于服务连接的疑义
- android 两个activity如何通信
- android 怎么实现对view的放大和缩小
- android 教程解决方法
- android ID,该如何处理
- 准备复习2-3个月,看java+android,请问有经验者,怎么看效果最好》
- android UI线程与AsyncTask的有关问题
- android(java)中的java.net能不能和c#的system.net.sockets进行tcp通信,该如何解决
- android ListView 中的onItemClick Intent 没法跳转
- android(java) 中文乱码的有关问题
- c#c++,android,ios(iphone),php,java视屏课程 散分
- android Post文件到ASP.NET的有关问题,能收到参数收不到文件
- RIM 替 Android 开发者提供免费的 PlayBook!2月13日前
- android 动态设立控件高度
- Android test project 编译方法
- android -相机使用教程(1)解决方法