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 |