Как я могу сделать динамический экран зеркального отражения (как этот iPhone) в Android

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


Вот наш код, где нам нужно зеркальное отражение между 2 операциями:

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>
6
задан NagarjunaReddy 17 February 2012 в 10:56
поделиться

3 ответа

Вы можете динамически добавлять страницы в 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>
18
ответ дан 8 December 2019 в 13:45
поделиться

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

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

android:screenOrientation="sensor"

в узел "Действия" в файле AndroidManifest.xml

-4
ответ дан 8 December 2019 в 13:45
поделиться

Просто быстро вас поискал, потому что я был уверен, что видел это раньше, я нашел это на сайте 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.

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

3
ответ дан 8 December 2019 в 13:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: