android 利用ViewFlipper來實現滑動切換Activity

來源:互聯網
上載者:User

1:先看下顯示吧 

看下滑動切換後的activity

 

2:先看slide.XML布局吧:

</p><p><relativelayout 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" tools:context=".SlideActivity"></p><p> <viewflipper android:id="@+id/viewflipper" android:layout_width="match_parent" android:layout_height="match_parent" android:text="@string/hello_world"></p><p></viewflipper></relativelayout><br />

3:如果想通過滑動(手勢)來實現滑動Activity,需要實現OnGestureListener介面,主要是實現兩個方法 onFling()和onTouchEvent()方法:,並通過viewflipper的setInAnimation方法來實現activity的切換動畫,該動畫需要在res/下建立anim檔案夾,具體的動畫.xml檔案請看

第4點:直接上代碼吧

</p><p>package com.youpeng.slideactivity;</p><p>import android.app.Activity;<br />import android.content.Context;<br />import android.content.Intent;<br />import android.os.Bundle;<br />import android.view.GestureDetector;<br />import android.view.GestureDetector.OnGestureListener;<br />import android.view.LayoutInflater;<br />import android.view.MotionEvent;<br />import android.view.View;<br />import android.view.View.OnClickListener;<br />import android.view.animation.AnimationUtils;<br />import android.widget.Button;<br />import android.widget.ViewFlipper;</p><p>public class SlideActivity extends Activity implements OnGestureListener {</p><p>private GestureDetector mGestureDetector;<br />private ViewFlipper flipper;<br />private Button button1, button2, button3, button4;</p><p>@Override<br />protected void onCreate(Bundle savedInstanceState) {<br />super.onCreate(savedInstanceState);<br />setContentView(R.layout.slide);<br />mGestureDetector = new GestureDetector(this);<br />// 擷取介面控制項<br />initView();<br />// 監聽介面 控制項<br />monitorView();</p><p>}</p><p>private void monitorView() {<br />// TODO Auto-generated method stub<br />button1.setOnClickListener(new OnClickListener() {</p><p>@Override<br />public void onClick(View v) {<br />// TODO Auto-generated method stub<br />Intent intent = new Intent(SlideActivity.this,<br />OneActivity.class);<br />intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);<br />startActivity(intent);<br />}<br />});<br />button2.setOnClickListener(new OnClickListener() {</p><p>@Override<br />public void onClick(View v) {</p><p>}<br />});<br />button3.setOnClickListener(new OnClickListener() {</p><p>@Override<br />public void onClick(View v) {<br />// TODO Auto-generated method stub</p><p>}<br />});<br />button4.setOnClickListener(new OnClickListener() {</p><p>@Override<br />public void onClick(View v) {<br />// TODO Auto-generated method stub</p><p>}<br />});</p><p>}</p><p>private void initView() {<br />flipper = (ViewFlipper) findViewById(R.id.viewflipper);<br />LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);<br />View viewone = inflater.inflate(R.layout.one, null);<br />flipper.addView(viewone);<br />View viewtwo = inflater.inflate(R.layout.two, null);<br />flipper.addView(viewtwo);<br />View viewthird = inflater.inflate(R.layout.third, null);<br />flipper.addView(viewthird);<br />View viewfour = inflater.inflate(R.layout.four, null);<br />flipper.addView(viewfour);</p><p>button1 = (Button) viewone.findViewById(R.id.button1);<br />button2 = (Button) viewtwo.findViewById(R.id.button2);<br />button3 = (Button) viewthird.findViewById(R.id.button3);<br />button4 = (Button) viewfour.findViewById(R.id.button4);</p><p>}</p><p>// private View addView(int layout) {<br />// LayoutInflater inflater = (LayoutInflater)<br />// getSystemService(Context.LAYOUT_INFLATER_SERVICE);<br />// View view = inflater.inflate(layout, null);<br />// return view;<br />// }</p><p>@Override<br />public boolean onTouchEvent(MotionEvent event) {<br />return this.mGestureDetector.onTouchEvent(event);<br />}</p><p>@Override<br />public boolean onDown(MotionEvent e) {<br />return false;<br />}</p><p>@Override<br />public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,<br />float velocityY) {<br />if (e1.getX() - e2.getX() > 100) {<br />this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,<br />R.anim.push_left_in));<br />this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,<br />R.anim.push_left_out));<br />this.flipper.showNext();</p><p>} else if (e1.getX() - e2.getX() < -100) {<br />this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,<br />R.anim.push_right_in));<br />this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,<br />R.anim.push_right_out));<br />this.flipper.showPrevious();<br />}</p><p>return false;<br />}</p><p>@Override<br />public void onLongPress(MotionEvent e) {</p><p>}</p><p>@Override<br />public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,<br />float distanceY) {<br />return false;<br />}</p><p>@Override<br />public void onShowPress(MotionEvent e) {</p><p>}</p><p>@Override<br />public boolean onSingleTapUp(MotionEvent e) {<br />return false;<br />}</p><p>}<br />

5:anim動畫檔案如下push_left_in.xml如下

 <br /><?xml version="1.0" encoding="utf-8"?><br /><set xmlns:android="http://schemas.android.com/apk/res/android"></p><p> <translate android:duration="300" android:fromxdelta="100%p" android:toxdelta="0"></p><p> <alpha android:duration="300" android:fromalpha="0.1" android:toalpha="1.0"></p><p></alpha></translate></set></p><p>

push_left_out.xml如下

 <br /><?xml version="1.0" encoding="utf-8"?><br /><set xmlns:android="http://schemas.android.com/apk/res/android"></p><p> <translate android:duration="300" android:fromxdelta="0" android:toxdelta="-100%p"></p><p> <alpha android:duration="300" android:fromalpha="1.0" android:toalpha="0.1"></p><p></alpha></translate></set><br />

push_right_in.xml如下

  </p><p><?xml version="1.0" encoding="UTF-8"?><br /><set xmlns:android="http://schemas.android.com/apk/res/android"><br /> <translate android:fromxdelta="-100%p" android:toxdelta="0" android:duration="300"><br /> <alpha android:fromalpha="0.1" android:toalpha="1.0" android:duration="500"><br /></alpha></translate></set></p><p>

push_right_out.xml如下

 <br /><?xml version="1.0" encoding="UTF-8"?><br /><set xmlns:android="http://schemas.android.com/apk/res/android"></p><p> <translate android:duration="300" android:fromxdelta="0" android:toxdelta="100%p"></p><p> <alpha android:duration="300" android:fromalpha="1.0" android:toalpha="0.1"></p><p></alpha></translate></set></p><p>

  具體工程代碼地址如下:

android 利用viewflipper來實現滑動切換activity

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.