안드로이드

 

 

 

 

class MainActivity

package org.androidtown.mypagesliding;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {

    LinearLayout slidingPanner;
    Button button;
    Animation animation_left, animation_right;

    boolean sldingChange=true;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        animation_left = AnimationUtils.loadAnimation(this, R.anim.translate_left);
        animation_right =AnimationUtils.loadAnimation(this, R.anim.translate_right);


        animation_right.setAnimationListener(new Animation.AnimationListener() {
            @Override
            public void onAnimationStart(Animation animation) {

            }

            @Override
            public void onAnimationEnd(Animation animation) {
                //오른쪽으로 이동이 끝났을 경우 view 를 사라지게
                slidingPanner.setVisibility(View.GONE);
            }

            @Override
            public void onAnimationRepeat(Animation animation) {

            }
        });


        slidingPanner =(LinearLayout)findViewById(R.id.slidingPanel);
        button=(Button)findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if(sldingChange){
                    slidingPanner.setVisibility(View.VISIBLE);
                    slidingPanner.startAnimation(animation_left);
                    button.setText("닫기");
                }else{
                    slidingPanner.startAnimation(animation_right);
                    button.setText("열기");
                }
                sldingChange = !sldingChange;
            }
        });

    }






}

 

R.layout.activity_main

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


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:background="#ff5555ff">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="바탕화면"
                android:textColor="#ffffffff"
                android:textSize="30dp"
                />
        </LinearLayout>


    <LinearLayout
        android:id="@+id/slidingPanel"
        android:layout_width="250dp"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="@android:color/holo_orange_dark"
        android:layout_gravity="right"
        android:visibility="gone"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="슬라이딩 화면"
            android:textColor="#ffffffff"
            android:textSize="30dp"
            />
    </LinearLayout>




    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right|center_vertical"
        android:text="열기"
        android:textSize="30dp"
        android:textColor="#ff000000"
        />


</FrameLayout>

 

 

translate_left.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:fromXDelta="100%p"
        android:toXDelta="0%p"
        android:duration="500"
        android:repeatCount="0"
        android:fillAfter="true"
        >
        <!-- fillAfter :애니메이션이 실행후 마지막에 그위치에 있을것인가-->

    </translate>


</set>

 

translate_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate
        android:fromXDelta="0%p"
        android:toXDelta="100%p"
        android:duration="500"
        android:repeatCount="0"
        android:fillAfter="false"
        >
        <!-- fillAfter :애니메이션이 실행후 마지막에 그위치에 있을것인가?
             true, false 차이가 없다  -->

    </translate>


</set>

 

 

45강

 

 

46강

 

 

about author

PHRASE

Level 60  머나먼나라

신체발부( 身體髮膚 )는 부모에게서 받는다. 굳이 훼손하지 않는 것이 효의 시작이다. -불경

댓글 ( 4)

댓글 남기기

작성