【scrollTo/scrollBy】 //控制項內的文字會移動,但是控制項本身不會移動,而且移動到控制項之外之後,文字也就看不見了 if(v.equals(button2)){ button2.scrollTo(5, 5); //View內的文字會向左移動5,向上移動5,絕對坐標,只會移動一次 Toas ...
【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();
}
【動畫】
//補間動畫//原先的位子不會被侵占
//可以移動整個控制項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" />
</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);