ボタンをクリックした直後にボタンをアニメートする必要があります。描画可能@ "=背景:button.clickの直後にアニメーションを作成するには?
<?xml version="1.0" encoding="UTF-8" ?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size
android:width="280dp"
android:height="50dp"/>
<gradient
android:startColor="#FF3366"
android:endColor="#FF3366"
android:angle="180"/>
<padding android:left="7dp"
android:top="7dp"
android:right="7dp"
android:bottom="7dp" />
<corners android:radius="35dp" />
</shape>
ボタンがアンドロイドを持っている:
は<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="true">
<item android:drawable="@drawable/gradient_box" android:duration="200" />
<item android:drawable="@drawable/gradient_box_end" android:duration="200" />
</animation-list>
gradient_boxиgradient_box_endの唯一の違いは、幅(280及びそれに対応180dp)です。だから私は、単純なアニメーションAnimationDrawableを作りました/ gradient_animation "はxml layuotに割り当てられています。
MainActivity.csです:
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Main);
Button buttonlogin = FindViewById<Button>(Resource.Id.button1); //animated button
AnimationDrawable animation = (AnimationDrawable)buttonlogin.Background;
buttonlogin.Click += (sender, e) =>
{
animation.Start();
};
問題は、アニメーションだけでbutton.click後のアプリケーションといくつかのアクションの後に動作しますが、ではないということです。たとえば、ボタンをクリックしても何も起こりません。編集テキストをクリックし、キーボードが画面に表示され、アニメーションが開始されます。
私はGoogleがこの推奨していることを発見した:
それはAnimationDrawableではないので、AnimationDrawableに呼ばれるstart()メソッドは、あなたの活動ののonCreate()メソッドの間に呼び出されることができないことに注意することが重要ですまだ窓に完全に取り付けられています。インタラクションを必要とせずにすぐにアニメーションを再生したい場合は、アクティビティのonWindowFocusChanged()メソッドから呼び出すことができます。これは、Androidがウィンドウをフォーカスしたときに呼び出されます。
しかし、私はまだ解決策を見つけることができません。
をonclickの –