TabLayout与ViewPager与viewFlipper的使用

1.主界面

package com.fsg.thinkpad.myapplication;

import android.content.Intent;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageSwitcher;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.ViewFlipper;

import java.util.ArrayList;
import java.util.List;

public class Homework2Activity extends AppCompatActivity implements View.OnTouchListener{
    TabLayout tabLayout;
    ViewPager viewPager;
    ImageButton imageButton;
    int[] images;
    ViewFlipper viewFlipper;
    GestureDetector gestureDetector;  //捕捉手势

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

        tabLayout=(TabLayout)findViewById(R.id.tabs);
        viewPager=(ViewPager)findViewById(R.id.viewpager);
        viewFlipper=(ViewFlipper)findViewById(R.id.viewFlipper);
        images=new int[]{R.mipmap.f1,R.mipmap.f2,R.mipmap.f3,R.mipmap.f4};

        //显示tab
        startupViewPager();
        //动态添加图片
        for (int i=0;i<images.length;i++){
            viewFlipper.addView(getImageView(images[i]));
        }
         viewFlipper.startFlipping();
         viewFlipper.setOnTouchListener(this);
         gestureDetector=new GestureDetector(new SimpleGestureListener());

        imageButton=(ImageButton)findViewById(R.id.imageButton2);
        imageButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String action = "android.media.action.IMAGE_CAPTURE";
                Intent intent = new Intent(action);
               startActivity(intent);

            }
        });
    }

    private ImageView getImageView(int id) {
        ImageView imageView=new ImageView(this);
        imageView.setImageResource(id);
        return imageView;
    }

    private void startupViewPager() {
        List<String> titles=new ArrayList<String>();
        titles.add("词典");
        titles.add("百科");
        titles.add("翻译");
        titles.add("发现");
        titles.add("我的");

        List<Fragment> mFragmentList=new ArrayList<Fragment>();
        for (int i=0;i<titles.size();i++){
            tabLayout.addTab(tabLayout.newTab().setText(titles.get(i)));
            mFragmentList.add(new MyFragmentActivityFragment());
        }
        FragmentAdapter adapter=new FragmentAdapter(getSupportFragmentManager(),titles,mFragmentList);
        viewPager.setAdapter(adapter);
        tabLayout.setupWithViewPager(viewPager);
        tabLayout.setTabsFromPagerAdapter(adapter);
   }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_homework2, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        return gestureDetector.onTouchEvent(event);
    }
    class SimpleGestureListener extends GestureDetector.SimpleOnGestureListener{

        final int FLING_MIN_DISTANCE = 100, FLING_MIN_VELOCITY = 200;
        public boolean onDown(MotionEvent e) {
     //       Toast.makeText(Homework2Activity.this, "ondown", Toast.LENGTH_SHORT).show();
            return true;
        }

        @Override
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
            //fling left
            if ((e1.getX()-e2.getX()>FLING_MIN_DISTANCE)&&Math.abs(velocityX)>FLING_MIN_VELOCITY){
                viewFlipper.setInAnimation(getApplicationContext(), R.anim.abc_fade_in);
                viewFlipper.setOutAnimation(getApplicationContext(), R.anim.abc_fade_out);
                viewFlipper.showNext();
            }else if((e2.getX()-e1.getX()>FLING_MIN_DISTANCE)&&Math.abs(velocityX)>FLING_MIN_VELOCITY){
                viewFlipper.setInAnimation(getApplicationContext(), R.anim.abc_fade_in);
                viewFlipper.setOutAnimation(getApplicationContext(), R.anim.abc_fade_out);

                viewFlipper.showPrevious();


            }else {
                return false;
            }
            return true;
        }
    }
}

2.布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.fsg.thinkpad.myapplication.Homework2Activity">

    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#000000"
        app:tabTextColor="#ffffff"
        app:tabSelectedTextColor="#ffffff"

        ></android.support.design.widget.TabLayout>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

            <ViewFlipper
                android:id="@+id/viewFlipper"
                android:layout_width="fill_parent"
                android:layout_height="240dp"
                android:minHeight="270dp"
                android:flipInterval="3000"
                android:layout_marginTop="-20dp"></ViewFlipper>
        </LinearLayout>

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:orientation="horizontal"
            android:layout_marginTop="140dp"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:background="#fffffb">


            <ImageButton
                android:id="@+id/imageButton2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/camera"
                android:background="#fffffb"
                android:layout_marginRight="17dp"
                android:layout_marginEnd="17dp"
                android:layout_alignTop="@+id/editText4"
                android:layout_toLeftOf="@+id/imageButton3"
                android:layout_toStartOf="@+id/imageButton3" />

            <ImageButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/imageButton3"
                android:src="@mipmap/partition_line"
                android:background="#fffffb"
                android:layout_marginRight="28dp"
                android:layout_marginEnd="28dp"
                android:layout_centerVertical="true"
                android:layout_toLeftOf="@+id/editText4"
                android:layout_toStartOf="@+id/editText4" />

            <EditText
                android:id="@+id/editText4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:hint="在此输入要翻译的文本"
                android:layout_marginRight="46dp"
                android:layout_marginEnd="46dp"
                android:background="@null"
                android:layout_centerVertical="true"
                android:layout_alignParentRight="true"
                android:layout_alignParentEnd="true" />

        </RelativeLayout>


    </RelativeLayout>


    <TextView
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:textColor="#000000"
        android:background="#48020102" />

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="-20dp"></android.support.v4.view.ViewPager>


</LinearLayout>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值