2014-01-22 3 views
0

http://i.imgur.com/QSuWCtl.pngАнимационная часть вида из нижней части экрана

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

Обычно я использую 2d-движок, чтобы делать такие вещи (начиная с создания игр). Я не так привык к просмотрам и таким образом, но они кажутся немного ограниченными (например, setY не работает на некоторых устройствах ... или размещает просмотры с экрана, меняет их размеры)

Как бы то ни было, затем разрешите его увидеть? Это легко сделать на iPhone и кажется, что хлопот на Android (Некоторые учебники имеют Gazillion строки кода, я просто хочу что-то просто ..)

ответ

0

Попробуйте это мои анимации:

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
android:duration="@android:integer/config_longAnimTime" 
android:fromYDelta="100%p" 
android:toYDelta="50%p" /> 

Теперь дайте свой Дно Макет Стиль:

android:layout_alignParentBottom="true" 

Теперь Дайте ваш макет анимации с помощью этого:

private LinearLayout llShareApp; 
llShareApp = (LinearLayout) findViewById(R.id.llShareApp); 
    llShareApp.setAnimation(AnimationUtils.loadAnimation(this, 
       R.anim.bottom_top)); 
0

это нелегко сделать анимацию через XML, потому что у Android столько экранов. Итак, во-первых, вам нужно рассчитать высоту относительной части макета и всю высоту экрана, тогда вы можете получить фактическую высоту, которую хотите поднять на экране, и сделать анимацию.

Ниже приведен пример кода:

Layout XML:

<LinearLayout 
    android:id="@+id/layout_order_types" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:layout_below="@+id/layout_mask" 
    android:visibility="invisible" > 

    <ImageView 
     android:id="@+id/image_all_order" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:scaleType="fitXY" 
     android:src="@drawable/all_order" /> 
    ..............   
    .............. 
</LinearLayout> 

Код Активность:

// Whole screen height 
int heightPixels = getApplicationContext().getResources().getDisplayMetrics().heightPixels; 

View layoutOrderTypes = findViewById(R.id.layout_order_types); 
layoutOrderTypes.setVisibility(View.VISIBLE); 

// slide in from bottom animation 
Animation inFromBottom = new TranslateAnimation(
     Animation.ABSOLUTE, 0.0f, 
     Animation.ABSOLUTE, 0.0f, 
     Animation.ABSOLUTE, heightPixels, 
     Animation.ABSOLUTE, (heightPixels - layoutOrderTypes.getHeight() 
       - DisplayUtil.getStatusBarHeight(this))); 
inFromBottom.setDuration(300); 

// start the animation 
layoutOrderTypes.startAnimation(inFromBottom); 

DisplayUtil.java

public static int getStatusBarHeight(Context context) { 
     int result = 0; 
     int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android"); 
     if (resourceId > 0) { 
      result = context.getResources().getDimensionPixelSize(resourceId); 
     } 
     return result; 
} 
Смежные вопросы