2014-11-20 3 views
3

На самом деле у меня есть Linear Layout, который matchParentwidth и height), и теперь мне нужно создать другой layout (ниже linearLayout), который не должен быть виден на начальном этапе.Как получить анимацию в Android?

И когда начнется моя деятельность , я хочу оживить эту скрытую компоновку.

Скрытый layout должен быть расположен снизу вверх. Я не знаю, как добиться этой анимации? Я не знаю, как создать макет, который не должен быть видимым изначально, и после задержки он должен показать снизу экрана и подойти стороной ???

вот мой код файла XML

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<LinearLayout 
    android:id="@+id/imageupLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="center" 
     android:orientation="vertical" > 

     <ImageView 
      android:id="@+id/imgview" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:background="@drawable/logo" /> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/hided_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom" 
     android:background="#56a24b" 
     android:orientation="vertical" 
     android:visibility="visible" > 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:layout_marginTop="15dip" 
      android:background="@drawable/btn_bg" 
      android:gravity="center" > 

      <Button 
       android:id="@+id/btn_login" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:layout_margin="2dip" 
       android:background="@drawable/btn_login" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:layout_marginTop="10dip" 
      android:background="@drawable/btn_bg" 
      android:gravity="center" > 

      <Button 
       android:id="@+id/btn_register" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:layout_margin="2dip" 
       android:background="@drawable/btn_register" /> 
     </LinearLayout> 

     <TextView 
      android:id="@+id/tv_just_explore" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="20dip" 
      android:layout_marginTop="20dip" 
      android:gravity="center" 
      android:text="JUST EXPLORE" 
      android:textColor="#FFFFFF" 
      android:textSize="15dip" 
      android:textStyle="bold" /> 
    </LinearLayout> 
</LinearLayout> 

+1

Вы можете следить за ответы, приведенные в ссылке. [http://stackoverflow.com/questions/18232372/slide-a-layout-up-from-bottom-of-screen] –

+0

позвольте мне попробовать .... –

ответ

3

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

В моей основной деятельности.

public class MainActivity extends ActionBarActivity { 

private View hiddenPanel; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    hiddenPanel = findViewById(R.id.hidden_panel); 
     } 

public void slideUpDown(final View view) { 
     if (!isPanelShown()) { 
      // Show the panel 
      Animation bottomUp = AnimationUtils.loadAnimation(this, 
        R.anim.bottom_up); 

      hiddenPanel.startAnimation(bottomUp); 
      hiddenPanel.setVisibility(View.VISIBLE); 
     } 
     else { 
      // Hide the Panel 
      Animation bottomDown = AnimationUtils.loadAnimation(this, 
        R.anim.bottom_down); 

      hiddenPanel.startAnimation(bottomDown); 
      hiddenPanel.setVisibility(View.GONE); 
     } 
    } 

    private boolean isPanelShown() { 
     return hiddenPanel.getVisibility() == View.VISIBLE; 
    } 

}

В моей activity_main

<?xml version="1.0" encoding="utf-8"?> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:text="@string/hello_world" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    android:text="@string/hello_world" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:onClick="slideUpDown" 
    android:text="Slide up/down" /> 

<RelativeLayout 
    android:id="@+id/hidden_panel" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@android:color/white" 
    android:visibility="gone" > 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/app_name" 
     android:layout_centerInParent="true" 
     android:onClick="slideUpDown" /> 
</RelativeLayout> 

bottom_down.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<translate 
android:fromYDelta="0%p" 
android:toYDelta="100%p" 
android:fillAfter="true" 
android:interpolator="@android:anim/linear_interpolator" 
android:duration="500" /> 
</set> 

bottom_up.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<translate 
    android:fromYDelta="75%p" 
    android:toYDelta="0%p" 
    android:fillAfter="true" 
    android:duration="500" /> 
</set> 
0

Вы не упомянули, макет в своем коде вы хотите скрыть и принести другую раскладку. Но я дам вам общий код, который вы можете применить. Сначала для верстки вы хотите скрыть первоначально установить android:visibility = "gone" и в вашей деятельности при анимации использования ниже

layoutYouHideInitially.setVisibility(View.VISIBLE); 
layoutYouHideInitially.animate().alpha(1).setDuration(500); 
layoutYouWannaHide.setVisibility(View.GONE); 
layoutYouWannaHide.animate().alpha(0).setDuration(500); 

Между установки видимости GONE или INVISIBLE это ДО вас основаны на использовании. А для анимации у вас есть и другие варианты, которые вы можете изучить вместо alpha, например translationX, scaleX и т. Д. Просьба прокомментировать, если вы застряли в любой проблеме. Рад был помочь!

Смежные вопросы