在我的Android應用的觀點是這樣的圖像:如何在android中製作這樣的動畫?
現在,這裏d是小部件,它是任何視圖或可能已經按鈕。 我想要的是,如果用戶點擊該「D」部分,以不同顏色顯示的視圖應該被轉換爲從左到右的方式,並且只有「D」部分出現在屏幕的最右邊緣。如果用戶再次點擊該「D」部分,則視圖從右向左翻轉並看起來像上面的圖像。
如何製作?
在我的Android應用的觀點是這樣的圖像:如何在android中製作這樣的動畫?
現在,這裏d是小部件,它是任何視圖或可能已經按鈕。 我想要的是,如果用戶點擊該「D」部分,以不同顏色顯示的視圖應該被轉換爲從左到右的方式,並且只有「D」部分出現在屏幕的最右邊緣。如果用戶再次點擊該「D」部分,則視圖從右向左翻轉並看起來像上面的圖像。
如何製作?
假設D是一個imageview,它在x方向上從0移動到200。 請參閱下面的代碼。
public class DActivity extends Activity {
ImageView D;
int x=0,y=0;
int a=0;
int newx=0;
TranslateAnimation TA;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
D=(ImageView)findViewById(R.id.d);
RelativeLayout RL=(RelativeLayout)findViewById(R.id.rl);
D.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
x=v.getLeft();
y=v.getTop();
Toast.makeText(getApplicationContext(), "X="+x+"y="+y, Toast.LENGTH_LONG).show();
if(x==0){
D.setEnabled(false);
a=200;
newx=200;
Anim();
}
if(x==200){
D.setEnabled(false);
a=-200;
newx=0;
Anim();
}
return true;
}
});
}
public void Anim(){
TranslateAnimation TAnimation=new TranslateAnimation(0, a, 0,0);
TAnimation.setInterpolator(new LinearInterpolator());
TAnimation.setDuration(5000);
TAnimation.setFillAfter(false);
TAnimation.setFillEnabled(true);
TAnimation.setFillBefore(true);
D.startAnimation(TAnimation);
TAnimation.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation animation) { }
public void onAnimationRepeat(Animation animation) {}
public void onAnimationEnd(Animation animation) {
LayoutParams param=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
param.setMargins(newx, y, 0, 0);
D.setLayoutParams(param);
D.setEnabled(true);
}
});
}
}
我沒有看到任何圖像:o – ingsaurabh