본문 바로가기

컴퓨터/android

슬라이드 화면 전환

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

android:orientation="vertical">

    <LinearLayout 

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:orientation="horizontal">

        <Button

            android:layout_width="0dp"

            android:layout_height="wrap_content"

            android:layout_weight=".25"

            android:id="@+id/btn_google1"/>

        

        <Button

            android:layout_width="0dp"

            android:layout_height="wrap_content"

            android:layout_weight=".25"

            android:id="@+id/btn_naver1"/>

        

        <Button

            android:layout_width="0dp"

            android:layout_height="wrap_content"

            android:layout_weight=".25"

            android:id="@+id/btn_daum1"/>

        

        <Button

            android:layout_width="0dp"

            android:layout_height="wrap_content"

            android:layout_weight=".25"

            android:id="@+id/btn_nate1"/>

    </LinearLayout>

    <!-- 프레임레이아웃  -->

    

    

    <ViewFlipper

  android:id="@+id/viewFlipper1"     

        android:layout_width="fill_parent"

        android:layout_height="fill_parent" >

    </ViewFlipper>

    

</LinearLayout>



sub_view1.xml

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

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:background="#ff0000">

</FrameLayout>



sub_view2.xml

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

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:background="#00ff00" >

</FrameLayout>



sub_view3.xml

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

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:background="#0000ff" >

</FrameLayout>




MainActivity

package com.example.slide;


import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.view.MotionEvent;

import android.view.View;

import android.view.View.OnTouchListener;

import android.view.animation.AnimationUtils;

import android.webkit.WebChromeClient;

import android.webkit.WebView;

import android.widget.Button;

import android.widget.FrameLayout;

import android.widget.LinearLayout;

import android.widget.ViewFlipper;


public class MainActivity extends Activity implements OnTouchListener, View.OnClickListener {

/** ViewFlipper 컴포넌트 객체 */

private ViewFlipper m_viewFlipper;

/** ViewFlipper 안에서 터치된 x축의 좌표*/

private int m_nPreTouchPosX = 0;

Button btn1, btn2, btn3, btn4;

FrameLayout sub1, sub2, sub3;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

btn1 = (Button)findViewById(R.id.btn_google1);

btn2 = (Button)findViewById(R.id.btn_naver1);

btn3 = (Button)findViewById(R.id.btn_daum1);

btn4 = (Button)findViewById(R.id.btn_nate1);

m_viewFlipper = (ViewFlipper)findViewById(R.id.viewFlipper1);

m_viewFlipper.setOnTouchListener(this);

sub1 = (FrameLayout) View.inflate(this, R.layout.sub_view1, null);

sub2 = (FrameLayout) View.inflate(this, R.layout.sub_view2, null);

sub3 = (FrameLayout) View.inflate(this, R.layout.sub_view3, null);

m_viewFlipper.addView(sub1);

m_viewFlipper.addView(sub2);

m_viewFlipper.addView(sub3);

btn1.setOnClickListener(this);

btn2.setOnClickListener(this);

btn3.setOnClickListener(this);

btn4.setOnClickListener(this);

}

private void MoveNextView(){

m_viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.appear_from_right));

m_viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.disappear_to_left));

m_viewFlipper.showNext();

}

private void MovePreViousView(){

m_viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.appear_from_left));

m_viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.disappear_to_right));

m_viewFlipper.showNext();

}

public boolean onTouch(View v, MotionEvent event){

if(event.getAction() == MotionEvent.ACTION_DOWN){

m_nPreTouchPosX = (int)event.getX();

}

if(event.getAction() == MotionEvent.ACTION_UP){

int nTouchPosX = (int)event.getX();

if(nTouchPosX < m_nPreTouchPosX){

MoveNextView();

}else if(nTouchPosX > m_nPreTouchPosX){

MovePreViousView();

}

m_nPreTouchPosX = nTouchPosX;

}

return true;

}

public void onClick(View v){

sub1.setVisibility(FrameLayout.INVISIBLE);

sub2.setVisibility(FrameLayout.INVISIBLE);

sub3.setVisibility(FrameLayout.INVISIBLE);

if(v.getId() == R.id.btn_google1){

sub1.setVisibility(FrameLayout.VISIBLE);

}

else if(v.getId() == R.id.btn_naver1){

sub2.setVisibility(FrameLayout.VISIBLE);

}

else if(v.getId() == R.id.btn_daum1){

sub3.setVisibility(FrameLayout.VISIBLE);

}

}

}





appear_from_left.xml

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

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate 

        android:duration="300"

        android:fromXDelta="-100%p"

        android:toXDelta="0%p"/>

</set>



appear_from_right.xml

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

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate 

        android:duration="300"

        android:fromXDelta="100%p"

        android:toXDelta="0%p"/>

</set>



disappear_to_left.xml

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

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate

        android:duration="300"

        android:fromXDelta="0%p"

android:toXDelta="-100%p" />

</set>



disappear_to_right.xml

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

<set xmlns:android="http://schemas.android.com/apk/res/android">

    <translate

        android:duration="300"

        android:fromXDelta="0%p"

        android:toXDelta="100%p" />


</set>


'컴퓨터 > android' 카테고리의 다른 글

이메일 보내기  (0) 2013.07.11
Custom ListView  (0) 2013.07.09
ArrayList, ArrayAdapter, ListView  (0) 2013.07.05
체크박스  (0) 2013.07.01
버튼으로 탭 구현  (0) 2013.07.01