设为首页 加入收藏

TOP

Android View的滑动 动画
2017-10-13 10:35:51 】 浏览:6007
Tags:Android View 滑动 动画

【scrollTo/scrollBy】

//控件内的文字会移动,但是控件本身不会移动,而且移动到控件之外之后,文字也就看不见了

if(v.equals(button2)){

button2.scrollTo(5, 5);         //View内的文字会向左移动5,向上移动5,绝对坐标,只会移动一次

Toast.makeText(this, "用户名", Toast.LENGTH_SHORT).show();

}else if(v.equals(button3)){

button3.scrollBy(5, 5);//View内的文字会向左移动5,向上移动5,相对坐标,会移动无数次

Toast.makeText(this, "用",Toast.LENGTH_SHORT).show();

}

 

getX(),getY() //表示相对于手指点下去的那个View的左上角的x,y坐标

getRawX(),getRawY() //表示相对于屏幕左上角的坐标

 

 

【动画】

//补间动画//原先的位子不会被侵占

//可以移动整个控件A,可以通过fillAfter把控件停留在移动的终点

//但是焦点实际上还是在原先的地方,从其他地方往原先的地方A移动,(移动的控件A可以获得焦点的情况下)控件A就会从停留的地方回来

//(移动的控件A无法获得焦点的情况下)如果往原先的地方A移动,控件A会停留在移动的终点

Animation animation2= AnimationUtils.loadAnimation(getApplicationContext(),R.anim.slide_big_in_right);

button2.startAnimation(animation2);

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android"

    android:fillAfter="true">

<translate

   android:fromXDelta="1920"

   android:toXDelta="1000"

   android:fromYDelta="0"

   android:toYDelta="0"

   android:duration="2000"

   android:interpolator="@android:anim/decelerate_interpolator" />   //表示动画集合中所采用的插值器,插值器影响动画的速度,比如非匀速动画就需要插值器来控制播放速度

                                                                                                   //decelerate_interpolator 动画越来越慢

</set>

 

//补间动画情况和上面一样  //其实焦点还是在原先的地方

TranslateAnimation animation = new TranslateAnimation(0, 300,0, 0); 

animation.setDuration(2000);//设置动画持续时间 

animation.setRepeatCount(2);//设置重复次数 

animation.setFillAfter(true);

animation.setRepeatMode(Animation.REVERSE);//设置反方向执行 

button4.startAnimation(animation); 

 

//属性动画//原先的位子不会被侵占

//整个控件会向右移动100,会停留在终点,焦点也在终点。在即使点击这个控件,它也还是在终点

ObjectAnimator.ofFloat(button2, "translationX", 0,100)

.setDuration(100).start();

 

 

【改变布局参数】

//整个控件会移动,焦点也会移动,会停留在最后。原先的位置会被侵占,

RelativeLayout.LayoutParams mParams=(RelativeLayout.LayoutParams) button3.getLayoutParams();

mParams.width=100;

mParams.height=130;

mParams.setMargins(50, 50, 0, 0);

button3.setLayoutParams(mParams);

button3.setPadding(20, 0, 0, 0);

 

 

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Android版本控制系统及其间的差异 下一篇Android 断点续传

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目