Переместить ImageButton после события onClick

У меня есть кнопка изображения внутри RelativeLayaut. Мой imageButton имеет размер 300x350 пикселей и расположен за пределами экрана (сверху) -300 пикселей. Нажмите кнопку, опуститесь на 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 используется функция сна. Ваша ПОМОЩЬ приветствуется


person Gufo    schedule 05.07.2011    source источник


Ответы (1)


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

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

Ознакомьтесь также с ресурсами по анимации.

person mobilekid    schedule 05.07.2011
comment
Эй, мне интересно, как я могу заставить кнопку изображения двигаться, чтобы она выглядела так, как будто она вибрирует? Например, как перемещаются приложения Apple, когда вы удерживаете их, чтобы удалить? Я безуспешно искал это несколько часов, я очень ценю вашу помощь! - person Ruchir Baronia; 14.11.2015