Переместить ImageButton после события onClick - PullRequest
1 голос
/ 05 июля 2011

У меня есть кнопка image внутри RelativeLayaut.Мой imageButton имеет размер 300x350 пикселей и расположен за пределами экрана (сверху) -300px вкл. Нажмите кнопку, уменьшите 300 пикселей и вернитесь в исходное положение при повторном нажатии.Эффект похож на всплывающее окно.

Я мог бы получить этот рабочий код.

XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/pag1" android:id="@+id/relativeLayout1"
android:drawingCacheQuality="high" android:layout_width="1024px"
android:layout_height="600px">
<ImageButton android:id="@+id/imageButton8" 
android:layout_width="300px" 
android:layout_height="350px" 
android:layout_marginLeft="720px" 
android:background="@drawable/popup" 
android:layout_marginTop="-300px">
</ImageButton>
</RelativeLayout>

КОД

import android.widget.RelativeLayout.LayoutParams;
...

//activity declarations
protected static final int WIDTH = 300;
protected static final int HEIGHT = 350;
int count=0;
...

///click
    final ImageButton pop=(ImageButton) findViewById (R.id.imageButton8);
    pop.setOnClickListener(new OnClickListener(){

        public void onClick(View v) {
            count++;

            if (count==1){  
                LayoutParams lp = new LayoutParams(WIDTH,HEIGHT);
                lp.setMargins(720, -20, 4, 0);
                pop.setLayoutParams(lp);
            }
            else{
                LayoutParams lp = new LayoutParams(WIDTH,HEIGHT);
                lp.setMargins(720, -300, 4, 0);
                pop.setLayoutParams(lp);
                count=0;
            }
        }   
    });

СЕЙЧАС Я хочу добавить плавный переход к финалупозиция.Я думаю, что в цикле FOR с использованием функции сна.Ваша помощь приветствуется

1 Ответ

1 голос
/ 06 июля 2011

Я думаю, вам следует начать с выбора платформы, на которую вы нацелены, поскольку в Honeycomb есть новая анимационная среда. Взгляните на эту статью .

Если, однако, вы ориентируетесь на версии до 3.0, то самый простой способ - определить анимацию в anim.xml и загрузить ее в свою деятельность с помощью android.view.animation.AnimationUtils. Затем, после того, как вы установили новые параметры макета в представлении, просто вызовите public void startAnimation (Animation animation) в представлении, и оно будет анимировано для вас. Две строки в Java и еще несколько в XML.

Взгляните на Анимационные ресурсы тоже.

...