8

ユーザーが編集を開始したときに編集テキストをアニメーション化しようとしました。私は次のコードを試しました、

 EditText txtPassword = (EditText) findViewById(R.id.editText1);  
 Animation  anim = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.anim);
 anim.setInterpolator((new AccelerateDecelerateInterpolator()));
 anim.setFillAfter(true);
txtPassword.startAnimation(anim);

anim.xml
````````
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0" android:toYDelta="-50%p" android:duration="100"/>
</set>

アニメーションは正常に動作します。しかし、編集テキストはアニメーション後にユーザーの操作を停止しました。ユーザーが画面の edittext の前の位置に触れると、キーボードが表示されます。しかし、実際には新しい位置にある edittext が応答するはずです。私がしなければならないこと?

ここに画像の説明を入力

ここに画像の説明を入力 誰かが私の質問を正しい英語形式で編集できることを願っています。

4

1 に答える 1

0

(役立つヒント: プラットフォームのすべてのバージョンで Honeycomb (Android 3.0) アニメーション API を使用するための Android ライブラリがあり、1.0 に戻ります! . NineOldAndroidと呼ばれます。)

(有用なヒント (Android 開発者、View ): Android 3.0 以降、ビューをアニメーション化する推奨される方法は android.animation パッケージ API を使用することです。これらの Animator ベースのクラスは、View オブジェクトの実際のプロパティ (alpha や translationX など) を変更します。この動作は、3.0 より前のアニメーションベースのクラスの動作とは対照的であり、代わりにビューがディスプレイに描画される方法のみをアニメーション化します. 特に、ViewPropertyAnimator クラスは、これらのビュー プロパティのアニメーション化を特に簡単かつ効率的にします. )

(注: 以下の解決策は、プレハニカム用です。)

Android でのアニメーションは、iOS とは対照的に、理解するのが少し難しいです。それを知っておく必要があります。

  • Android View サブクラスのゴーストのみがアニメーション化されます。
  • 墓はまだ祖先座標にあります

したがって、解決策は次のようになります。

  • 表示するタッチ イベントをブロックする

    animatingView.setEnabled(FALSE);

  • アニメーション ビュー

  • animationView を削除

    animatingView.setVisibility(GONE); (animatingView.getParent()).removeView(animatingView);

  • ビューの正確な複製を新しい座標に追加します。

于 2012-10-31T07:53:22.937 に答える