Как я могу сделать динамический экран (как у iPhone) в Android - PullRequest
6 голосов
/ 19 апреля 2010

Я анализирую данные через веб-сервис. Я хочу переворачивать горизонтально, а не вертикально. Вот учебник, в котором используется ViewFlipper, но он предназначен для статических данных.


Вот наш код, где нам нужно переключаться между двумя действиями:

Splash.java

public class Splash extends Activity{

        /** Called when the activity is first created. */

        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            setContentView(R.layout.main);

                    startActivity(new Intent(Splash.this, MainMenu.class));
                    Splash.this.finish();                                     
        }
    }

Splash.xml

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/splash">
</AbsoluteLayout>

Menu.java

public class Menu extends Activity{

        /** Called when the activity is first created. */

        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);               
            setContentView(R.layout.menu);                                       
        }
    }

menu.xml

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/menu">
</AbsoluteLayout>

Ответы [ 4 ]

18 голосов
/ 20 апреля 2010

Вы можете добавлять страницы в ViewFlipper динамически, используя addView.

  flipper= (ViewFlipper) findViewById(R.id.flipper1);
  flipper.addView(myView,myViewIndex);

Где myView - это представление, которое вы хотите добавить, а myViewIndex - это индекс в видоискателе, для которого требуется добавить это новое представление.

Затем вы можете настроить анимацию для преформ при смене вида:

  flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.left_in));
  flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.left_out));

Затем, чтобы перейти на эту страницу, вы можете использовать:

  flipper.setDisplayedChild(myViewIndex);

Где left_in.xml определяется как

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" 
  android:interpolator="@android:anim/accelerate_interpolator">
    <translate
    android:interpolator="@android:anim/decelerate_interpolator"
    android:fromXDelta="100%p"
    android:toXDelta="0" 
    android:duration="300"
    />
</set>

и left_out.xml:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/accelerate_interpolator"
    >
    <translate
    android:interpolator="@android:anim/decelerate_interpolator"
    android:fromXDelta="0" 
    android:toXDelta="-100%p" 
    android:duration="300"
    />
</set>
3 голосов
/ 21 апреля 2010

Только что взглянул на вас, потому что я был уверен, что видел его раньше, я нашел это на developer.android.com:

public void overridePendingTransition (int enterAnim, int exitAnim)

Since: API Level 5
Call immediately after one of the flavors of startActivity(Intent) or finish() to specify an explicit transition animation to perform next.
Parameters
enterAnim   A resource ID of the animation resource to use for the incoming activity. Use 0 for no animation.
exitAnim    A resource ID of the animation resource to use for the outgoing activity. Use 0 for no animation.

Таким образом, вы можете добавить этот дополнительный параметр к своему намерению, который будет определять, как анимируемая вами активность будет анимироваться при входе в новую активность и выходе из старой активности.

0 голосов
/ 09 февраля 2012

Если вы хотите перемещаться между двумя действиями и не использовать флиппер вида, вы можете использовать обычные намерения. Написал учебник, чтобы вы могли анимировать вход и выход из вашей активности,

Наслаждайтесь:

http://blog.blundell -apps.com / одушевленные-ан-активности /

0 голосов
/ 19 апреля 2010

Вы хотите, чтобы экран вращался в зависимости от положения, в котором он удерживается (как определено датчиками акселерометра)?

Если это так, просто добавьте

android:screenOrientation="sensor"

к узлу Activity в вашем файле AndroidManifest.xml

...