1 / 12

滑動版面

滑動版面. 建國科技大學 資管系 饒瑞佶 2013/7 V1. 滑動版面. 需要 Gesture( 手勢辨識 ) ViewFlipper (view 切換容器 ) 滑動 animation( 上下左右 ). SignFlipDemo.java. 手勢辨識. ViewFlipper. 透過覆寫自動產生. SignFlipDemo.java - onCreate. @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState);

jaafar
Download Presentation

滑動版面

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 滑動版面 建國科技大學 資管系 饒瑞佶 2013/7 V1

  2. 滑動版面 • 需要 • Gesture(手勢辨識) • ViewFlipper(view切換容器) • 滑動animation(上下左右)

  3. SignFlipDemo.java 手勢辨識 ViewFlipper 透過覆寫自動產生

  4. SignFlipDemo.java-onCreate @Override publicvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); detector = new GestureDetector(this);//手勢辨識 flipper = new ViewFlipper(this); flipper.setBackgroundColor(Color.WHITE); flipper.addView(addTextView("step 1", 0));// flipper.addView(addTextView("step 2", 1)); flipper.addView(addTextView("step 3", 2)); flipper.addView(addTextView("step 4", 3)); flipper.addView(addTextView("step 5", 4)); flipper.addView(addTextView("step 6", 5)); setContentView(flipper); } 將版面放入ViewFlipper 用ViewFlipper 設定起始畫面

  5. SignFlipDemo.java-addTextView private View addTextView(String text, int i) { TextView tv = new TextView(this); tv.setText(text); tv.setGravity(1); LinearLayout output = new LinearLayout(this); output.setOrientation(LinearLayout.VERTICAL); Drawable dabg; switch (i) { case 0: dabg = this.getResources().getDrawable(R.drawable.bg0); output.setBackgroundDrawable(dabg); //建立一個ImageView ImageView imgv= new ImageView(this); imgv.setBackgroundResource(R.drawable.icon); //設定圖示 //設定ImageView的格式 RelativeLayout.LayoutParams forimgv = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); //將ImageView加入LinearLayout output.addView(imgv,forimgv); break;

  6. SignFlipDemo.java-addTextView case 1: dabg = this.getResources().getDrawable(R.drawable.bg1); output.setBackgroundDrawable(dabg); break; case 2: dabg = this.getResources().getDrawable(R.drawable.bg2); output.setBackgroundDrawable(dabg); break; case 3: dabg = this.getResources().getDrawable(R.drawable.bg3); output.setBackgroundDrawable(dabg); break; case 4: dabg = this.getResources().getDrawable(R.drawable.bg4); output.setBackgroundDrawable(dabg); break; case 5: dabg = this.getResources().getDrawable(R.drawable.bg5); output.setBackgroundDrawable(dabg); break; } output.addView(tv); return output; }

  7. SignFlipDemo.java-onFling @Override publicbooleanonFling(MotionEvent e1, MotionEvent e2, floatvelocityX,floatvelocityY) { if (e1.getX() - e2.getX() > 120) { this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,R.layout.left_in)); this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,R.layout.left_out)); this.flipper.showNext(); returntrue; } elseif (e1.getX() - e2.getX() < -120) { this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,R.layout.right_in)); this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,R.layout.right_out)); this.flipper.showPrevious(); returntrue; } elseif (e1.getY() - e2.getY() > 200) { this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,R.layout.push_up_in)); this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,R.layout.push_up_out)); this.flipper.showNext(); returntrue; } elseif (e1.getY() - e2.getY() < -200) { this.flipper.setInAnimation(AnimationUtils.loadAnimation(this,R.layout.push_down_in)); this.flipper.setOutAnimation(AnimationUtils.loadAnimation(this,R.layout.push_down_out)); this.flipper.showPrevious(); returntrue; } returnfalse; } animation

  8. SignFlipDemo.java-onTouchEvent @Override publicboolean onTouchEvent(MotionEvent event) { returnthis.detector.onTouchEvent(event); }

  9. 向左滑動 left_in.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" android:duration="500" /> </set> left_out.xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="500" /> </set>

  10. 向右滑動 right_in.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" android:duration="500" /> </set> right_out.xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0" android:toXDelta="100%p" android:duration="500" /> </set>

  11. 向下滑動 push_down_in.xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="-100%p" android:toYDelta="0" android:duration="700" /> <alpha android:fromAlpha="1.0" android:toAlpha="1.0" android:duration="700" /> </set> push_down_out.xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="0" android:toYDelta="100%p" android:duration="700" /> <alpha android:fromAlpha="1.0" android:toAlpha="1.0" android:duration="700" /> </set>

  12. 向上滑動 push_up_in.xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="100%p" android:toYDelta="0" android:duration="700" /> <alpha android:fromAlpha="1.0" android:toAlpha="1.0" android:duration="700" /> </set> push_up_out.xml <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="0" android:toYDelta= "-100%p" android:duration="700" /> <alpha android:fromAlpha="1.0" android:toAlpha="1.0" android:duration="700" /> </set>

More Related