私の知る限り、この場合、Android アニメーションは使用されません。ボタンを押したときに一部の値が変更されたことをユーザーに伝えるために、通常はToastをポップアップします。これはシンプルで効果的です。また、デザインが気に入らない場合は、必要に応じてカスタマイズできます。私が送信したリンク(Toast)ですべて説明されています。
ボタンでこれを使用するだけOnClickListener()
です:
int srcposn = sourceSpinner.getSelectedItemPosition();
int tgtposn = targetSpinner.getSelectedItemPosition();
sourceSpinner.setSelection(tgtposn);
targetSpinner.setSelection(srcposn);
Toast toast = Toast.makeText(
HomeActivity.this,
"Units Successfully Changed",
Toast.LENGTH_SHORT);
toast.show();
編集:
ただし、スピナーを数秒間ハイライトするなどの効果を実行したい場合は... この問題についてウェブ上で適切なヘルプが見つからなかったので、ImageViews
. アニメ化ImageViews
するには を使用してImageSwitcher
2 つのイコールを作成ImageViews
するので、基本的には同じことです。アイデアは、次のような関数を使用して、2 つの新しい を作成しSpinners
、他のものの上と左に配置することです。
/**
* Creates a new {@link Spinner} which overlays another
* @param spinner {@link Spinner} to overlay
* @return The new {@link Spinner}
*/
private Spinner createNewSpinner(Spinner spinner){
LayoutParams spinnerParams = new LayoutParams(spinner.getWidth(), LayoutParams.WRAP_CONTENT);
spinnerParams.addRule(RelativeLayout.ALIGN_TOP, spinner.getId());
spinnerParams.addRule(RelativeLayout.ALIGN_LEFT, spinner.getId());
Spinner overlaySpinner = new Spinner(HomeActivity.this);
overlaySpinner.setLayoutParams(spinnerParams);
return overlaySpinner;
}
効果については、次のようなものを作成できると思いますが、100% 機能するかどうかはわかりません。より多くのサポートを読むには、アニメーションを読んでください:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:background="@drawable/bg_orange"
android:interpolator="@android:anim/decelerate_interpolator"
android:fromAlpha="1.0" android:toAlpha="0.0"
android:duration="400"
/>
アニメーションをロードするには、このコードを使用できますが、2 つのエフェクトを同時にトリガーしたいので、Spinners
このアイデアに従ってすべてを実行できるかどうかはわかりません。だから前に言わなかったんだ。
Animation animation = AnimationUtils.loadAnimation(this, R.anim.disapear);
sourceSpinner.startAnimation(animation);
それが役に立てば幸い!