卫星效果的实现(上下方向)
来源:互联网 发布:游戏监测软件 编辑:程序博客网 时间:2024/05/20 16:13
最近看了一下卫星效果,觉得不错,就写了一个简单入门的上下方向的。
废话不多说,直接上代码
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private View iv_root; private View iv_robot; private View iv_voice; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initListener(); } private void initView() { iv_root = findViewById(R.id.iv_root); iv_robot = findViewById(R.id.iv_robot); iv_voice = findViewById(R.id.iv_voice); } private void initListener() { iv_root.setOnClickListener(this); iv_robot.setOnClickListener(this); iv_voice.setOnClickListener(this); } boolean isopen; @Override public void onClick(View view) { switch (view.getId()){ case R.id.iv_root: if(!isopen){ starAnim(); }else{ closeAnim(); } isopen=!isopen; break; case R.id.iv_robot: Toast.makeText(this, "我是机器人", Toast.LENGTH_SHORT).show(); break; case R.id.iv_voice: Toast.makeText(this, "我是语音", Toast.LENGTH_SHORT).show(); break; } } /** * 打开动画的操作 */ private void starAnim() { iv_voice.setVisibility(View.VISIBLE); iv_robot.setVisibility(View.VISIBLE); int y1=dip2px(50); int y2=dip2px(100); ObjectAnimator animator1=ObjectAnimator.ofFloat(iv_voice,"translationY",0,-y1); ObjectAnimator animator2=ObjectAnimator.ofFloat(iv_robot,"translationY",0,-y2); ObjectAnimator animator3=ObjectAnimator.ofFloat(iv_root,"rotation",0,45); animator1.setInterpolator(new AccelerateDecelerateInterpolator()); animator2.setInterpolator(new AccelerateDecelerateInterpolator()); AnimatorSet set=new AnimatorSet(); set.playTogether(animator1,animator2,animator3); set.setDuration(500);//设置动画时间 set.start(); } /** * 关闭动画的操作 */ private void closeAnim() { int y1=dip2px(50); int y2=dip2px(100); ObjectAnimator animator1=ObjectAnimator.ofFloat(iv_voice,"translationY",-y1,0); ObjectAnimator animator2=ObjectAnimator.ofFloat(iv_robot,"translationY",-y2,0); ObjectAnimator animator3=ObjectAnimator.ofFloat(iv_root,"rotation",45,0); animator1.setInterpolator(new AccelerateDecelerateInterpolator()); animator2.setInterpolator(new AccelerateDecelerateInterpolator()); AnimatorSet set=new AnimatorSet(); set.playTogether(animator1,animator2,animator3); set.setDuration(500);//设置动画时间 set.start(); set.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animator) { } @Override public void onAnimationEnd(Animator animator) { iv_voice.setVisibility(View.GONE); iv_robot.setVisibility(View.GONE); } @Override public void onAnimationCancel(Animator animator) { } @Override public void onAnimationRepeat(Animator animator) { } }); } /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public int dip2px(float dpValue) { final float scale =getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); }}布局文件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="count.buma.com.textdemo.MainActivity"> <ImageView android:id="@+id/iv_robot" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:visibility="gone" android:src="@mipmap/robot" /> <ImageView android:id="@+id/iv_voice" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:visibility="gone" android:src="@mipmap/voice" /> <ImageView android:id="@+id/iv_root" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:src="@mipmap/add" /></RelativeLayout>
0 0
- 卫星效果的实现(上下方向)
- 基于Android的卫星菜单效果实现
- 卫星菜单效果实现
- jquery实现文字的上下滚动效果
- iOS文字上下滚动效果的实现
- 首页通知上下翻滚效果的实现
- 实现上下文字滚动的效果
- RecyclerView实现滚动方向判断(上下监听)
- Android实现上下滑动效果
- Android实现上下滑动效果
- 电梯效果一(只实现了单个人上下电梯,多人的待续--)
- js实现上下滚动的跑马灯效果
- 通过TextSwitcher实现上下滚动的广告动画效果
- 用css3动画来实现物体上下跳动的效果
- 属性动画实现卫星菜单效果
- js实现图片上下轮播效果(二)
- 判断纸条折痕的上下方向
- javascript实现手机触摸屏左右(上下)滚动(javascript感知滑屏方向)
- listing宏包传入代码 英文右移问题
- Effective Java学习有感(一)---创建和销毁对象
- iOS开发应用上架必读最新苹果审核规则
- Docker搭建disconf环境,三部曲之三:细说搭建过程
- Codeforces 803C Maximal GCD【思维】
- 卫星效果的实现(上下方向)
- JAVA-11.2-登陆注册案例分析(集合版)
- spark处理HDFS文件
- 样本进行有序聚类(最优切割)
- node-canvas模块使用
- ionic入门之开始使用ionic框架
- qt输出txt乱码
- Linux权限管理——基本权限
- (转)关于Java的反射机制,你需要理解这些..