私は画像を前後に移動する画像ビューアを、右/左ボタンをクリックして行います。アニメーションを設定するImageSwitcherが実行されます(in_leftまたはout_right)
私は写真間のトランジションをアニメーション化したいと思っています。私はそれをImageSwitcherを使ってやっていますが、問題は残っています。
読み込まれたアニメーションは常に同じです。右または左のボタンをクリックしても違いはありません。
質問:ボタンをクリックしたときに実行されるアニメーションを設定するにはどうすればよいですか?
私はこのブログに基づいて私のコードでした:コードのhttp://saigeethamn.blogspot.com/2010/05/image-switcher-view-android-developer.html
ここで同じ重要な部品:
// OnCreate()
in = AnimationUtils.loadAnimation(this, android.R.anim.slide_in_left);
out = AnimationUtils.loadAnimation(this, android.R.anim.slide_out_right);
imageSwitcher = (ImageSwitcher) findViewById(R.id.imageSwitcher1);
imageSwitcher.setFactory(this);
imageSwitcher.setInAnimation(in);
imageSwitcher.setOutAnimation(out);
今すぐクリックイベント(BM1とBM2はビットマップです):
private OnClickListener mClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
if (v.getId()==R.id.buttonRight) {
Drawable d =new BitmapDrawable(getResources(),bm1);
imageSwitcher.setImageDrawable(d);
} else
if (v.getId()==R.id.buttonLeft) {
Drawable d =new BitmapDrawable(getResources(),bm2);
imageSwitcher.setImageDrawable(d);
}
}
};
ImageSwitcherは実行する魔法のアニメーションをどのように知っていますか? In LeftまたはOut Rightの場合
ここから編集------------------------------------------- ---------
ソリューション:ルイガスパルの回答に基づいて
private OnClickListener mClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
if (v.getId()==R.id.buttonRight) {
imageSwitcher.setInAnimation(this, R.anim.slide_in_left); // added
imageSwitcher.setOutAnimation(this, R.anim.slide_out_left); // added
Drawable d =new BitmapDrawable(getResources(),bm1);
imageSwitcher.setImageDrawable(d);
} else
if (v.getId()==R.id.buttonLeft) {
imageSwitcher.setInAnimation(this, R.anim.slide_in_right); // added
imageSwitcher.setOutAnimation(this, R.anim.slide_out_right); // added
Drawable d =new BitmapDrawable(getResources(),bm2);
imageSwitcher.setImageDrawable(d);
}
}
};
。彼が示すxmlを作成する必要があります。
答えをありがとう。私はこれらの4つのファイルをres/animフォルダに作成し、overridePendingTransition(R.anim.slide_in_right、R.anim.slide_out_right)を入れます。前と後の私のimageSwitcher.setImageDrawable(d);しかし、これは私のアニメーションを変更しません。何を設定すればいいですか? – Derzu
最初の質問と、アクティビティ間でアニメーション化するためのコードに気づかずにいました。アニメーションを変更するには、各ボタンをクリックしたときにsetInAnimation()およびsetOutAnimation()を使用します。 –
今、私は理解している、それは作品です。スライドさせたい方向ごとにInとOutの両方のアニメーションを設定する必要があります。そのように: if(direction == RIGHT){ imageSwitcher.setInAnimation(this、R.anim.slide_in_left); imageSwitcher.setOutAnimation(this、R.anim.slide_out_left); } else if(direction == LEFT){ imageSwitcher.setInAnimation(this、R.anim.slide_in_right); imageSwitcher.setOutAnimation(this、R.anim.slide_out_right); } – Derzu