iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >android如何实现扑克卡片翻转
  • 563
分享到

android如何实现扑克卡片翻转

2023-06-30 12:06:44 563人浏览 泡泡鱼
摘要

这篇文章主要介绍了Android如何实现扑克卡片翻转的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇android如何实现扑克卡片翻转文章都会有所收获,下面我们一起来看看吧。还需额外注意一点:这是刚刚才发现的问题

这篇文章主要介绍了Android如何实现扑克卡片翻转的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇android如何实现扑克卡片翻转文章都会有所收获,下面我们一起来看看吧。

还需额外注意一点:这是刚刚才发现的问题,在主activity中,正反面那个xml文件放在后面就会优先默认显示那个xml文件,所以,如果我需要一打开app就看到正面的话,那么正面xml文件需要放到反面xml文件的下面,就是

<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="Http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:onClick="flipCard"    android:id="@+id/main_fl_container"    tools:context="com.example.chenxuanhe.poketest.MainActivity">    <include layout="@layout/cell_card_back"        />    <include layout="@layout/cell_card_front"        /></FrameLayout>

根据代码的逻辑线走,则是接下来的两个layout:
这两个FrameLayout也是需要写id的,之后会用到。

cell_card_back.xml:

<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:id="@+id/main_fl_card_back"    >    <ImageView        android:src="@drawable/rectangle_back"        android:contentDescription="@null"        android:padding="16dp"        android:layout_width="match_parent"        android:layout_height="match_parent"        />    <TextView        android:textColor="@color/colorAccent"        android:text="反面"        android:textSize="40dp"        android:layout_gravity="center"        android:gravity="center"        android:layout_width="match_parent"        android:layout_height="match_parent" /></FrameLayout>

cell_card_front.xml:

<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:id="@+id/main_fl_card_front">    <ImageView        android:src="@drawable/rectangle_front"        android:padding="16dp"        android:contentDescription="@null"        android:layout_width="match_parent"        android:layout_height="match_parent" />    <TextView        android:textSize="40dp"        android:textColor="@color/colorPrimary"        android:text="正面"        android:gravity="center"        android:layout_gravity="center"        android:layout_width="match_parent"        android:layout_height="match_parent" /></FrameLayout>

继续顺着上面两个布局的逻辑线来走,就需要用到两个Drawable的文件作为背景图,所以接着看drawable文件:

rectangle_back.xml:

大概是一个黑边红底色带圆角的卡片界面

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle">    <corners android:radius="16dp"/>    <solid android:color="@color/cardBack"/>    <stroke android:width="2dp"        android:color="@android:color/black"/></shape>

rectangle_front.xml:

大概是一个黑边灰底色带圆角的卡片界面

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle">    <corners android:radius="16dp"/>    <solid android:color="@color/cardFront"/>    <stroke android:width="2dp"        android:color="@android:color/black"/></shape>

走完界面UI的逻辑线之后,就去看Java代码,发现需要两个Animator,于是在res文件下创建一个animator资源文件夹,在下创建两个动画文件:

anim-in.xml:

这是一个从左边进入的动画,一开始是隐藏的,逆向旋转,当旋转到一半时,显示卡片

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <!--消失-->    <objectAnimator        android:duration="0"        android:propertyName="alpha"        android:valueFrom="1.0"        android:valueTo="0.0"/>    <!--旋转-->    <objectAnimator        android:duration="3000"        android:propertyName="rotationY"        android:valueFrom="-180"        android:valueTo="0"/>    <!--出现-->    <objectAnimator        android:duration="0"        android:propertyName="alpha"        android:startOffset="1500"        android:valueFrom="0.0"        android:valueTo="1.0"/></set>

anim_out.xml:

这是一个右边出去的动画,旋转180度,旋转到一半时,卡片就消失了。

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <objectAnimator        android:duration="3000"        android:propertyName="rotationY"        android:valueFrom="0"        android:valueTo="180"/>    <!--消失-->    <objectAnimator        android:duration="0"        android:propertyName="alpha"        android:startOffset="1500"        android:valueFrom="1.0"        android:valueTo="0.0"/></set>

接着看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如何实现扑克卡片翻转”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: android如何实现扑克卡片翻转

本文链接: https://www.lsjlt.com/news/328819.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • android实现扑克卡片翻转
    今天看见一个Android 扑克卡片翻转效果的帖子,于是手痒想学一学,由于接触过的Animation动画等比较少,所以感觉很新奇。 首先,说一下布局,是FrameLayout,...
    99+
    2022-06-07
    Android
  • android如何实现扑克卡片翻转
    这篇文章主要介绍了android如何实现扑克卡片翻转的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇android如何实现扑克卡片翻转文章都会有所收获,下面我们一起来看看吧。还需额外注意一点:这是刚刚才发现的问题...
    99+
    2023-06-30
  • Android如何实现翻转动画效果(卡片翻转)
    目录前言需求一、先介绍三个插值器二、实现步骤1.效果图2.布局3.逻辑判断(是否隐藏)4.翻转动画5.bug出现6.bug解决三、源码四、总结前言 最近好友问计蒙翻转动画,恰好在大...
    99+
    2022-11-12
  • Android实现卡片翻转动画
    最近项目上用到了卡片的翻转效果,大致研究了下,也参考了网上的一些Demo,简单实现如下: activity_main.xml <?xml version=...
    99+
    2022-06-06
    动画 Android
  • css3如何实现卡片翻转效果
    本文小编为大家详细介绍“css3如何实现卡片翻转效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“css3如何实现卡片翻转效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 ...
    99+
    2022-10-19
  • CSS如何实现卡片3D翻转效果
    这篇文章将为大家详细讲解有关CSS如何实现卡片3D翻转效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果:代码:html:<div class="main">...
    99+
    2023-06-08
  • vue实现卡片翻转轮播展示
    vue卡片翻转轮播展示,同时在翻转时切换数据,供大家参考,具体内容如下 效果及代码 代码: <template> <div class="list-con...
    99+
    2022-11-12
  • css怎样实现卡片图像翻转效果
    本篇文章为大家展示了css怎样实现卡片图像翻转效果,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。css翻转图片具体代码示例:   HTML代码部分<divc...
    99+
    2022-10-19
  • 使用CSS实现卡片翻转效果的技巧
    使用CSS实现卡片翻转效果的技巧CSS是前端开发中最常用的技术之一,它不仅可以美化页面,还可以实现一些炫酷的特效。其中,卡片翻转效果是一种非常常见且具有吸引力的效果。本文将介绍如何使用CSS来实现卡片翻转效果,并提供具体的代码示例。基本结构...
    99+
    2023-11-21
    CSS卡片翻转效果
  • Android实现图片反转、翻转、旋转、放大和缩小
    ********************************************************************** android 实现图片的翻转 ...
    99+
    2022-06-06
    图片 反转 Android
  • 实现微信小程序中的卡片翻转特效
    实现微信小程序中的卡片翻转特效在微信小程序中,实现卡片翻转特效是一种常见的动画效果,可以提升用户体验和界面交互的吸引力。下面将具体介绍如何在微信小程序中实现卡片翻转的特效,并提供相关代码示例。首先,需要在小程序的页面布局文件中定义两个卡片元...
    99+
    2023-11-21
    卡片翻转 特效 关键词:小程序
  • 使用JetpackCompose实现翻转卡片效果流程详解
    目录介绍执行ML Kit银行卡识别输出结论如何使用 Jetpack Compose 创建翻转卡片效果 介绍 在电子商务和银行应用程序中输入卡信息是很常见的情况。我认为让用户更轻松地...
    99+
    2023-05-19
    Jetpack Compose翻转卡片 Jetpack Compose翻转效果
  • Flutter仿网易实现广告卡片3D翻转效果
    目录前言实现思路1、获取各种距离2、翻转完整代码小结前言 在逛网易新闻时,发现列表中的广告在你滑动的时候会有一个3D旋转的交互引你的注意,不得不说这些产品为了让用户看广告花样百出,那...
    99+
    2022-11-13
  • Android图片翻转动画简易实现代码
    下面给大家分享一个有趣的动画:这里比较适合一张图片的翻转,如果是多张图片,可以参考APIDemo里的例子,就是加个ArrayAdapter,还是简单的,也可以自己发挥修改,实现...
    99+
    2022-06-06
    动画 Android
  • js如何实现图片翻转效果
    今天小编给大家分享一下js如何实现图片翻转效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2022-10-19
  • canvas如何实现图片镜像翻转
    这篇文章给大家分享的是有关canvas如何实现图片镜像翻转的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 通过canvas自带的画布方法进行翻转  var img =&nb...
    99+
    2023-06-09
  • C语言如何实现扑克牌游戏
    这篇文章主要介绍C语言如何实现扑克牌游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、 设计目的扑克牌是我们从小玩到大的纸牌类小游戏,我们有各种玩法跟不同的规则。我之所以选择的这个扑克牌,是因为我觉得可以提高我的...
    99+
    2023-06-22
  • Python如何实现扑克牌21点游戏
    这篇文章主要介绍Python如何实现扑克牌21点游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!直接上代码import randomimport sys# 牌面列表card_code&...
    99+
    2023-06-22
  • Android利用Camera实现中轴3D卡牌翻转效果
    在Android系统API中,有两个Camera类: android.graphics.Camera android.hardware.Camera 第二个应用...
    99+
    2022-06-06
    3d Android
  • 利用CSS实现卡片翻转效果的方法和示例
    在现代的网页设计中,翻转效果是一种常见且炫酷的特效,可以为网页增添一份动感和交互性。利用CSS的转换属性和动画属性,我们可以轻松地实现卡片的翻转效果。本文将介绍一种基础的卡片翻转效果,并提供具体的代码示例供读者参考。卡片翻转效果是指将卡片从...
    99+
    2023-10-21
    CSS 卡片翻转 方法和示例
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作