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

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM