0

アイテムのリストビューがあり、それらのアイテムの 1 つが押されたときに画面の右側から 3 つのボタンがスライドインするようにします。次に例を示します。

クリックされていない場合のリストビュー項目: ここに画像の説明を入力

クリックされた場合のリストビュー項目: ここに画像の説明を入力

また、半透明の灰色のオーバーレイを介して選択されたプロジェクトを「薄暗くする」ことにも興味があります。これは可能ですか?これを行うための最良の方法は何ですか? 私は調査を行ってきましたが、すべてがジェスチャー指向のようで、アイテムの削除に関するものです。

4

1 に答える 1

1

ボタンのスライドはそれほど難しくありません。あなたがする必要があるのは、それらを親コンテナー (たとえば、水平方向LinearLayout) にラップすることです。親コンテナの可視性を に設定しandroid:visibility="invisible"ます。次に、コード内で、作成した親コンテナーで左から右にスライドするトランジション アニメーションを開始するように項目を設定OnClickListenerします。ListViewアニメーションを開始するときは、必ず親コンテナーの可視性を「可視」に設定してください (たとえば、コード内のアニメーションにアタッチされた内のonAnimationStart()メソッド内)。AnimationListener

アニメーションは XML で保存でき、次のようになります。

<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:shareInterpolator="false">

  <translate android:fromXDelta="-100%" android:toXDelta="0%"
             android:fromYDelta="0%" android:toYDelta="0%"
             android:duration="400"/>
</set>

これは明らかに必要なすべてではありませんが、正しい方向に向けるのに役立つことを願っています. View減光に関しては、アイテム ビュー全体を半透明の背景色 (#88ffffff など)の基本色でオーバーレイすることで、以前にこれを行ったことがあります。アイテムを淡色表示する必要があるまで、可視性を「gone」に設定したままにします。

編集:クリック リスナー内の翻訳アニメーションは次のようになります。

TranslateAnimation translateAnim = (TranslateAnimation) AnimationUtils.loadAnimation(this, R.anim.your_slide_in_animation);
translateAnim.setInterpolator(new LinearInterpolator());
translateAnim.setAnimationListener(new AnimationListener() {
    @Override
    public void onAnimationStart(Animation animation) {
        buttonParentView.setVisibility(View.VISIBLE);
    }

        @Override
        public void onAnimationEnd(Animation animation) {}

        @Override
        public void onAnimationRepeat(Animation animation) {}
    });

buttonParentView.startAnimation(translateAnim);
于 2013-07-22T15:41:48.227 に答える