运行效果:

使用方法:

在build.gradle中添加依赖:

implementation 'com.jzp:rotate3D:1.0.0'

创建Rotate3D:

 Rotate3D  anim = new Rotate3D.Builder(this)        .bindParentView(parent_ll) .bindPositiveView(account_login_ll)         .bindNegativeView(account_phone_ll)  .create();

启动3D动画:

 anim.transform();

简单Demo:

  view布局:activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:layout_gravity="center"android:background="@drawable/home_bg"android:gravity="center"android:orientation="vertical"tools:context=".MainActivity"><RelativeLayoutandroid:id="@+id/login_top"android:layout_width="match_parent"android:layout_height="48dp"><TextViewandroid:id="@+id/back"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="14dp"android:text="取消"android:textColor="@color/blue"android:textSize="15sp"/></RelativeLayout><LinearLayoutandroid:id="@+id/parent_ll"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:padding="10dp"android:orientation="vertical"><LinearLayoutandroid:id="@+id/account_login_ll"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"android:gravity="center"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:gravity="center"android:text="账号登录"android:textColor="@color/black_title"android:textSize="22sp" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="58dp"android:layout_marginTop="35dp"android:layout_centerHorizontal="true"android:focusable="true"android:focusableInTouchMode="true"android:gravity="center_vertical"android:orientation="horizontal"><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="33dp"android:layout_marginRight="33dp"android:gravity="center"android:src="@drawable/ic_username" /><EditTextandroid:id="@+id/login_input_account"android:layout_width="0dp"android:layout_height="58dp"android:layout_weight="1"android:background="@null"android:cursorVisible="true"android:gravity="center|start"android:hint="@string/enter_login_account"android:imeOptions="actionNext"android:inputType="text"android:textColor="@color/black_title"android:textSize="15sp" /><ImageButtonandroid:id="@+id/login_arrow"android:layout_width="50dp"android:layout_height="match_parent"android:background="@null"android:padding="15dp"android:scaleType="fitCenter"android:src="@drawable/btn_drop"android:visibility="visible" /></LinearLayout><Viewandroid:layout_width="match_parent"android:layout_height="0.3dp"android:layout_marginEnd="15dp"android:layout_marginLeft="15dp"android:layout_marginRight="15dp"android:layout_marginStart="15dp"android:background="@color/divider" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="58dp"android:layout_centerHorizontal="true"android:gravity="center_vertical"android:orientation="horizontal"><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="33dp"android:layout_marginRight="33dp"android:gravity="center"android:src="@drawable/ic_password" /><EditTextandroid:id="@+id/login_input_password"android:layout_width="0dp"android:layout_height="58dp"android:layout_weight="1"android:background="@null"android:gravity="center|start"android:hint="@string/enter_login_password"android:imeOptions="actionDone"android:inputType="textVisiblePassword"android:maxLength="16"android:textColor="@color/black_title"android:textSize="15sp" /><ImageButtonandroid:id="@+id/login_hide_input"android:layout_width="50dp"android:layout_height="match_parent"android:background="@null"android:src="@drawable/btn_hide"android:visibility="visible" /></LinearLayout><Viewandroid:layout_width="match_parent"android:layout_height="0.3dp"android:layout_marginEnd="15dp"android:layout_marginLeft="15dp"android:layout_marginRight="15dp"android:layout_marginStart="15dp"android:background="@color/divider" /></LinearLayout><LinearLayoutandroid:id="@+id/account_phone_ll"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center"android:orientation="vertical"android:visibility="gone"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:gravity="center"android:text="免密登录"android:textColor="@color/black_title"android:textSize="22sp" /><LinearLayoutandroid:id="@+id/layout_3"android:layout_width="match_parent"android:layout_height="58dp"android:layout_marginTop="35dp"android:layout_centerHorizontal="true"android:focusable="true"android:focusableInTouchMode="true"android:gravity="center_vertical"android:orientation="horizontal"><ImageViewandroid:layout_width="80dp"android:layout_height="match_parent"android:gravity="center"android:scaleType="center"android:src="@drawable/icon_iphone" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginRight="10dp"android:text="+86"android:textColor="@color/blue"android:visibility="gone" /><EditTextandroid:id="@+id/login_input_phone"android:layout_width="0dp"android:layout_height="58dp"android:layout_weight="1"android:background="@null"android:cursorVisible="true"android:gravity="center|start"android:hint="@string/enput_phone"android:imeOptions="actionNext"android:inputType="text"android:textColor="@color/black_title"android:textSize="15sp" /><ImageButtonandroid:id="@+id/no_pass_login_arrow"android:layout_width="50dp"android:layout_height="match_parent"android:background="@null"android:padding="15dp"android:scaleType="fitCenter"android:src="@drawable/btn_drop"android:visibility="visible" /></LinearLayout><Viewandroid:layout_width="match_parent"android:layout_height="0.3dp"android:layout_marginEnd="15dp"android:layout_marginLeft="15dp"android:layout_marginRight="15dp"android:layout_marginStart="15dp"android:background="@color/divider" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="58dp"android:layout_centerHorizontal="true"android:gravity="center_vertical"android:orientation="horizontal"><ImageViewandroid:layout_width="80dp"android:layout_height="match_parent"android:gravity="center"android:scaleType="center"android:src="@drawable/icon_code" /><EditTextandroid:id="@+id/login_input_code"android:layout_width="0dp"android:layout_height="58dp"android:layout_weight="1"android:background="@null"android:gravity="center|start"android:hint="@string/enter_login_code"android:imeOptions="actionDone"android:inputType="number"android:maxLength="16"android:textColor="@color/black_title"android:textSize="15sp" /><Viewandroid:layout_width="0.2dp"android:layout_height="match_parent"android:layout_marginBottom="15dp"android:layout_marginLeft="10dp"android:layout_marginTop="15dp"android:background="#ffd7d7d7" /><TextViewandroid:id="@+id/send_code"android:layout_width="120dp"android:layout_height="match_parent"android:layout_gravity="center"android:gravity="center"android:text="发送验证码"android:textColor="@color/blue" /></LinearLayout><Viewandroid:layout_width="match_parent"android:layout_height="0.3dp"android:layout_marginEnd="15dp"android:layout_marginLeft="15dp"android:layout_marginRight="15dp"android:layout_marginStart="15dp"android:background="@color/divider" /></LinearLayout><Buttonandroid:id="@+id/login"style="?android:attr/borderlessButtonStyle"android:layout_width="match_parent"android:layout_height="48dp"android:layout_below="@+id/layout_2"android:layout_centerHorizontal="true"android:layout_marginEnd="14dp"android:layout_marginStart="14dp"android:layout_marginTop="25dp"android:background="@drawable/btn_shape"android:text="@string/login"android:textColor="@color/white"android:textSize="17sp" /></LinearLayout><TextViewandroid:id="@+id/no_pass_login"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/login"android:layout_centerHorizontal="true"android:padding="20dp"android:text="使用免密登录"android:textColor="@color/blue"android:textSize="15sp" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:gravity="bottom|center"android:orientation="vertical"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@id/login"android:gravity="center"android:orientation="horizontal"><TextViewandroid:id="@+id/forget_password"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginEnd="19dp"android:layout_marginRight="19dp"android:background="@null"android:gravity="center"android:padding="10dp"android:text="@string/forget_password"android:textColor="@color/hint_gray"android:textSize="14sp" /><Viewandroid:layout_width="0.3dp"android:layout_height="17dp"android:background="@color/hint_gray" /><TextViewandroid:id="@+id/register"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="19dp"android:layout_marginStart="19dp"android:background="@null"android:gravity="center"android:padding="10dp"android:text="@string/register_immediately"android:textColor="@color/hint_gray"android:textSize="14sp" /></LinearLayout><ImageViewandroid:id="@+id/reply_divider"android:layout_width="match_parent"android:layout_height="0.3dp"android:background="#d1d1d6" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="100dp"android:layout_gravity="center"android:gravity="center"android:orientation="horizontal"><ImageViewandroid:id="@+id/login_qq"android:layout_width="0dp"android:layout_height="43dp"android:layout_weight="1"android:scaleType="center"android:src="@drawable/ic_third_login_qq" /><ImageViewandroid:id="@+id/login_wechat"android:layout_width="0dp"android:layout_height="43dp"android:layout_weight="1"android:scaleType="center"android:src="@drawable/ic_third_wechat" /><ImageViewandroid:id="@+id/login_weibo"android:layout_width="0dp"android:layout_height="43dp"android:layout_weight="1"android:scaleType="center"android:src="@drawable/ic_third_weibo" /></LinearLayout></LinearLayout>
</LinearLayout>

Control层:MainActivity.java

public class MainActivity extends AppCompatActivity {Rotate3D rotate;private LinearLayout account_login_ll;private LinearLayout account_phone_all;private LinearLayout parent_ll;private TextView no_pass_login;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);account_login_ll=findViewById(R.id.account_login_ll);account_phone_all=findViewById(R.id.account_phone_ll);parent_ll=findViewById(R.id.parent_ll);no_pass_login=findViewById(R.id.no_pass_login);rotate=new Rotate3D.Builder(this).setParentView(parent_ll).setPositiveView(account_login_ll).setNegativeView(account_phone_all).create();//创建Rotate3Dno_pass_login.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {rotate.transform();//启动Rotate3Dif(rotate.isOpen()){no_pass_login.setText("使用免密登录");}else {no_pass_login.setText("使用账户登录");}}});}
}

源码:https://github.com/dpl12/3DLoginAnimation

Android3D旋转动画库--Rotate3D相关推荐

  1. Android 3D旋转动画库

    今天兴趣来潮,撸了一个动画特效,我把他应用在登录的界面,当然也可以用在其他地方,先来预览一下我的特效吧 使用方法 1. 在build.gradle里面配置如下 dependencies {compil ...

  2. 动画库NineOldAndroids

    动画库NineOldAndroids NineOldAndroids组件是一个向下兼容的动画库,主要是使低于API 11的系统也能够使用View的属性动画.该动画库支持旋转.移动.透明渐变.缩放等动画 ...

  3. android动画帧率_Android动画进阶—使用开源动画库nineoldandroids

    前言 Android系统支持原生动画,这为应用开发者开发绚丽的界面提供了极大的方便,有时候动画是很必要的,当你想做一个滑动的特效的时候,如果苦思冥想都搞不定,那么你可以考虑下动画,说不定动画轻易就搞定 ...

  4. Facebook开源动画库 POP-POPBasicAnimation运用

    动画在APP开发过程中还是经常出现,将花几天的时间对Facebook开源动画库 POP进行简单的学习:本文主要针对的是POPBasicAnimation运用:实例源代码已经上传至gitHub,地址:h ...

  5. 【荐】牛逼的WPF动画库:XamlFlair

    [荐]牛逼的WPF动画库:XamlFlair 原文链接:https://github.com/XamlFlair/XamlFlair 翻译:沙漠尽头的狼(本文未全文翻译,建议阅读原文了解更多) Xam ...

  6. css3案例分析,CSS3动画/动画库以及案例分析(上)

    在这html5遍天下的年代,越来越多的网页也用到了css3的动画效果,这让原本我们静态的页面有了更多的活力.最近也一直在做这方面的页面,有些小小的心得,和诸位分享下. CSS3的动画绝对是很赞的,不仅 ...

  7. animate.css –齐全的CSS3动画库--- 学习笔记

    animate.css – 齐全的CSS3动画库 学习网站: https://daneden.github.io/animate.css/ http://www.dowebok.com/98.html ...

  8. 2016年备用的9个顶级动画库

    1. Animate.css Animate.css 是当前最流行.最易用的CSS动画库.把Animate 库应用到你的项目中就如同为你项目中的元素添加一个类名这样简单.你也可以通过jQuery的事件 ...

  9. GSAP动画库入门基础示例:心爱的小摩托

    大家好,在我们谈论网页动画时,我们第一时间会想到用jQuery的animate()方法或者CSS3的animation和transition.今天的这篇文章,我将给大家推荐另一个可选方案,一款专业的W ...

最新文章

  1. Window10安装pycocotools
  2. 谷歌为URL缩短服务goo.gl开放API
  3. 《山谷物语》要怎么成为Supercell下一款年收入10亿美元的产品?
  4. 对某bc站的一次渗透测试
  5. 人力资源社会保障部关于公布国家职业资格目录的通知
  6. 【CSP】第20届CCF CSP计算机软件能力认证划水贴
  7. [渝粤教育] 陕西科技大学 食品营养安全与健康 参考 资料
  8. 矩阵相关定义性质全总结
  9. SGVision正反检测
  10. 高速公路综合运行监测与管控平台(HOCC)
  11. 兼容测试——云测平台
  12. 穿越技术火线,聆听内心声音——暨龙泉第三届IT禅修营
  13. 将数组分成两部分,使得这两部分的和的差最小
  14. uniapp实现图片压缩:
  15. coreldraw橙子怎么画_CDR绘制橙子和冰块教程
  16. AppScan渗透测试
  17. 一键解决Conda安装某个库(如opencv)时conflict(冲突)的问题
  18. 机器视觉 零基础Python+OpenCV+MediaPipe手势识别教程(一)手势识别基础入门
  19. 设计师常用设计尺寸有哪些
  20. 将SDPT3配置到matlab

热门文章

  1. selenium+requests获取52PK英雄联盟各英雄皮肤
  2. 我是个妈妈,我需要铂金包读后感
  3. 《当狗养的男孩》读书笔记和思考
  4. js定义全局变量 vue页面_在vue项目中 实现定义全局变量 全局函数操作
  5. 计算机网络_填空题(一)
  6. 连接网址 王世林 老罗的Android之旅
  7. 三七互娱《斗罗大陆:魂师对决》上线,Network Kit助力玩家即刻畅玩
  8. VGA显示8色彩条RGB888(一)
  9. iNFTnews|Web3正在重新定义粉丝的意义
  10. php r n 不换行,php r n 不换行怎么办