模仿猫眼电影App一个动画效果
2023-09-11 14:14:42 时间
看真正的猫眼效果图
接下来看自己写的粗略图(不足的地方是这里是2个切换选项,假设须要3个切换的话,须要自己定义控件,兴许在更新。。。)
源代码地址
自己定义控件(21)---自己定义控件之高仿猫眼小项目(3)
先看主页面xml布局文件--so easy
activity_main.xml
<RelativeLayout 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" tools:context="com.example.mytogglebutton.MainActivity" > <RelativeLayout android:layout_width="150dp" android:layout_height="50dp" android:layout_centerInParent="true" android:background="#CD5555" > <TextView android:id="@+id/tv_left" android:layout_width="50dp" android:layout_height="40dp" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginLeft="15dp" android:gravity="center" android:text="购物" /> <TextView android:id="@+id/tv_up" android:layout_width="50dp" android:layout_height="40dp" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginLeft="15dp" android:background="#ffffff" android:gravity="center" android:text="购物" /> <TextView android:id="@+id/tv_right" android:layout_width="50dp" android:layout_height="40dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="15dp" android:gravity="center" android:text="美食" /> </RelativeLayout> </RelativeLayout>
MainActivity--看主布局代码--so easy
package com.example.mytogglebutton; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.animation.Animation; import android.view.animation.TranslateAnimation; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener { private TextView tv_left; private TextView tv_right; private TextView tv_up; //表示是否要从购物切换到美食 private boolean tv_up_left_tran = false; //表示是否要从美食切换到购物 private boolean tv_up_right_tran = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); tv_right.setOnClickListener(this); tv_left.setOnClickListener(this); } private void initView() { tv_left = (TextView) findViewById(R.id.tv_left); tv_right = (TextView) findViewById(R.id.tv_right); tv_up = (TextView) findViewById(R.id.tv_up); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.tv_left: //表示要从美食切换到购物 if (!tv_up_right_tran) { TranslateAnimation animation = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 1.4f, Animation.RELATIVE_TO_SELF, 0f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f); animation.setDuration(100); tv_up.setText("购物"); animation.setFillAfter(true); tv_up.startAnimation(animation); } //切换后,改动状态--能够从左边切换到右边。可是不能从右边切换到左边 tv_up_right_tran = true; tv_up_left_tran = false; Toast.makeText(this, ""+tv_up.getText(), 1).show(); break; case R.id.tv_right: //表示要从购物切换到美食 if (!tv_up_left_tran) { TranslateAnimation animation1 = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 1.4f, Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f); animation1.setDuration(100); tv_up.setText("美食"); tv_up.startAnimation(animation1); animation1.setFillAfter(true); } //切换后,改动状态--能够从右边切换到左边,可是不能从左边切换到右边 tv_up_left_tran = true; tv_up_right_tran = false; Toast.makeText(this, ""+tv_up.getText(), 1).show(); break; default: break; } } }
相关文章
- 干货|app自动化测试之Appium问题分析及定位
- Google Earth Engine APP——在线计算23类植被指数app代码
- Google Earth Engine(GEE)APP——一个监测影像各波段的DN值的app
- uni-app - 禁用 APP 横屏旋转(用户操作行为)
- uni-app - 头像图片裁剪组件(支持多种裁剪,手势控制旋转或缩放、内外部控制图片移动、提供上传后端接口方案、头像图片美化)全端完美兼容 H5 App 小程序,最好用的图片上传后裁剪插件教程源代码
- uni-app - 电子签字板组件(签名专用写字画板,支持调整写字板 “横纵“ 方向,可调整线条粗细颜色等,Canvas 绘制非常丝滑流畅)完美兼容 H5 APP 小程序,最好用的画板签字教程插件源码
- uni-app - 文字上下循环滚动翻滚,类似中奖名单与公告栏信息公示等等,自定义组件封装,支持 DIY(适用于新闻动态、公告上下滚动列表、上下循环滚动,无限上下自动滚动列表)兼容小程序/H5/App
- uni-app - 用户点击图像放大预览功能 / 支持左右滑动与手指手势放大缩小图片(支持单图与多图、实现手机查看大图全屏预览功能),类似微信查看图片的效果,支持 App、H5、小程序等全端兼容!
- uni-app - 面包屑导航组件,支持自定义分隔符,点击可跳转对应页面(全端兼容 H5 APP 小程序,组件代码干净整洁无BUG)
- uni-app - 去除隐藏页面右侧垂直滚动条(App/全平台)
- uni-app - 改变 <switch> 组件大小(开关太大)
- APP冷启动优化:如何使用好工具【Perfetto systrace MethodTracing】
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [5] 版本设计分析及数据表设计
- 【快应用】如何解决快应用中不能下载原生APP问题
- DRF 3.x APP Model Serializer 应用模型序列化使用示例和配置方法
- iOS 精品项目之任务管理App基于Realm、SnapKit、UIKit、FSCalendar(教程含源码)
- SwiftUI 精品项目之 电影管理和播放App(教程含源码)
- SwiftUI CoreData 做个笔记App 新增与查询(教程含源码)viewmodal
- SwiftUI 动画之制作购物类App购物车效果(Grid和matchedGeometryEffect组合使用)
- Flutter桌面开发 — macOS App打包上架发布AppStore
- Android点击两次返回键退出App
- IOS APP上架App Store及提交审核详细教程
- 架构师是如何炼成的?以天猫APP架构&开发模式升级工程为例
- Android App优化之延长电池续航时间
- Adb命令获取App的package和启动Activity