android如何实现扑克卡片翻转
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了android如何实现扑克卡片翻转的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇android如何实现扑克卡片翻转文章都会有所收获,下面我们一起来看看吧
千家信息网最后更新 2026年11月01日android如何实现扑克卡片翻转
这篇文章主要介绍了android如何实现扑克卡片翻转的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇android如何实现扑克卡片翻转文章都会有所收获,下面我们一起来看看吧。
还需额外注意一点:这是刚刚才发现的问题,在主activity中,正反面那个xml文件放在后面就会优先默认显示那个xml文件,所以,如果我需要一打开app就看到正面的话,那么正面xml文件需要放到反面xml文件的下面,就是
根据代码的逻辑线走,则是接下来的两个layout:
这两个FrameLayout也是需要写id的,之后会用到。
cell_card_back.xml:
cell_card_front.xml:
继续顺着上面两个布局的逻辑线来走,就需要用到两个Drawable的文件作为背景图,所以接着看drawable文件:
rectangle_back.xml:
大概是一个黑边红底色带圆角的卡片界面
rectangle_front.xml:
大概是一个黑边灰底色带圆角的卡片界面
走完界面UI的逻辑线之后,就去看Java代码,发现需要两个Animator,于是在res文件下创建一个animator资源文件夹,在下创建两个动画文件:
anim-in.xml:
这是一个从左边进入的动画,一开始是隐藏的,逆向旋转,当旋转到一半时,显示卡片
anim_out.xml:
这是一个右边出去的动画,旋转180度,旋转到一半时,卡片就消失了。
接着看Java代码:
MainActivity:
public class MainActivity extends AppCompatActivity { @Bind(R.id.main_fl_card_back) FrameLayout mFlCardBack; @Bind(R.id.main_fl_card_front) FrameLayout mFlCardFront; @Bind(R.id.main_fl_container) FrameLayout mFlContainer; private AnimatorSet mLeftInSet; private AnimatorSet mRightOutSet; private boolean mIsShowBack; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); setAnimation();//设置动画 setCameraDistance();//设置镜头距离,在这里不是太懂 } private void setAnimation() { //mLeftInSet是左边进入的动画 mLeftInSet = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.anim_in); //mRightOutSet是右边出去的动画 mRightOutSet = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.anim_out); //点击事件 //通过ListenerAdapter就不需重写所有方法,只需写需要写的方法 mRightOutSet.addListener(new AnimatorListenerAdapter() { //动画开始时候 @Override public void onAnimationStart(Animator animation) { super.onAnimationStart(animation); mFlContainer.setClickable(false); } }); //动画结束的时候 mLeftInSet.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); mFlContainer.setClickable(true);//主布局中framelayouy的就允许你去点击了 } }); }//一直不是很懂的设置镜头距离,//帖子上的注释写着:改变视角距离,贴近屏幕 private void setCameraDistance() { int distance = 16000; float scale = getResources().getDisplayMetrics().density*distance; mFlCardFront.setCameraDistance(scale);//设置距离 mFlCardBack.setCameraDistance(scale);//设置距离 }//这是主Framelayout的点击方法 public void flipCard(View view){ //mIsShowBack可以理解为互斥,所以为boolean if(!mIsShowBack){ //右出动画设置在正面卡片界面 mRightOutSet.setTarget(mFlCardFront); //左入动画设置在反面卡片界面 mLeftInSet.setTarget(mFlCardBack); //开始动画 mRightOutSet.start(); mLeftInSet.start(); mIsShowBack = true; }else { //右出动画设置在卡片背面界面 mRightOutSet.setTarget(mFlCardBack); //左入动画设置在卡片正面界面 mLeftInSet.setTarget(mFlCardFront); mRightOutSet.start(); mLeftInSet.start(); mIsShowBack = false; } } //这一点我一直没想到,还可以在onDestroy方法中解绑ButterKnife protected void onDestroy(){ super.onDestroy(); ButterKnife.unbind(this); }}关于"android如何实现扑克卡片翻转"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"android如何实现扑克卡片翻转"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
卡片
动画
文件
界面
两个
扑克
方法
正面
这是
代码
知识
逻辑
内容
反面
右边
圆角
布局
底色
时候
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云南咖啡
互联网是第几次科技革命的成果
互联网电商科技
互联网 科技
成都互联网科技公司
互联网前沿科技
互联网科技股午盘股票涨跌
顺网科技2021年互联网排名
天速互联网络科技有限公司
剑昆互联网络科技有限公司临桂
阿大互联网科技有限公司
互联网科技大奖都有哪些公司
互联网科技扶贫时间
国大互联网教育科技有限公司工作
中国互联网公司排名锤子科技
互联网科技股为什么大涨
本届互联网大会上的黑科技
江苏互联网科技小贷
科技互联网经济论坛
保山浩联互联网科技有限公司
互联网科技有限公司
互联网络科技
深圳市人人互联网科技有限公司
喔噻互联网科技
互联网高科技企业
广州慧亚互联网科技怎么样
来此购互联网科技有限公司
互联网和黑科技的看法
黑科技闪耀互联网之光
互联网科技公司有风险吗