千家信息网

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安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司 浩特互联网科技 科技互联网公司logo 互联网科技咨询 联恩商钥互联网科技有限公司 广州慧亚互联网科技怎么样 互联网科技热点资讯 以后互联网后是啥科技 互联网校园科技培训 智腾互联网科技有限公司 杭州壁岐互联网科技有限公司 哈尔滨屹滨互联网科技有限公司 国大互联网教育科技有限公司薪资 容联科技互联网电商 北京天晋互联网科技有限公司 平安好医生打造互联网科技医疗 东风日产互联网科技公司叫什么 互联网的黑科技实验室 中国主要互联网科技公司 武汉亿视互联网科技有限公司 深圳天众互联网科技公司 汽车互联网创新科技园 科技与互联网哪个更好 广州市恰铎互联网科技有限公司 威龙国际互联网科技公司 长沙茂晟互联网科技有限公司 长沙互联网科技 上海科技产业互联网平台 电子商务与互联网科技的关系 艺电能源互联网科技有限公司招聘
0