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);

上一篇:C#支持文件拖拽


下一篇:如何在ASP.NET端获取屏幕宽度