第二次冲刺

第二次冲刺

在第二个冲刺完成了主界面的设计,包括导航轮播图,我的界面的完善,干的活有点少。

源代码:

我的界面:

package com.example.myapplication;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.NavController;
import androidx.navigation.Navigation;


public class ThirdFragment extends Fragment {

    private ThirdViewModel mViewModel;
    private Button personaldata;
    private Button mycollection;
    private Button myachievement;
    private Button about;

    public static ThirdFragment newInstance() {
        return new ThirdFragment();
    }

    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
                             @Nullable Bundle savedInstanceState) {


        return inflater.inflate(R.layout.third_fragment, container, false);
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        mViewModel = new ViewModelProvider(this).get(ThirdViewModel.class);

        personaldata = view.findViewById(R.id.personaldata);
        mycollection = view.findViewById(R.id.mycollection);
        myachievement = view.findViewById(R.id.myachievement1);
        about = view.findViewById(R.id.about);

        personaldata.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                NavController navController= Navigation.findNavController(view);
                navController.navigate(R.id.action_thirdFragment_to_personalshowFragment);

            }
        });


        mycollection.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

            }
        });

        myachievement.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

            }
        });

        about.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

            }
        });
    }
}

主界面代码:

package com.example.myapplication;

 

import android.content.Intent;

import android.os.Bundle;

import android.os.Handler;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.Button;

import android.widget.ImageButton;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.TextView;

 

import androidx.annotation.NonNull;

import androidx.annotation.Nullable;

import androidx.fragment.app.Fragment;

import androidx.lifecycle.ViewModelProvider;

import androidx.viewpager.widget.PagerAdapter;

import androidx.viewpager.widget.ViewPager;

 

import com.example.myapplication.sports_activity.Basketball_activity;

import com.example.myapplication.sports_activity.Football_activity;

import com.example.myapplication.sports_activity.Longrun_activity;

import com.example.myapplication.sports_activity.More_activity;

import com.example.myapplication.sports_activity.Tabletennis_activity;

import com.example.myapplication.sports_activity.Volleyball_activity;

 

import java.util.ArrayList;

 

public class FirstFragment extends Fragment {

 

    private FirstViewModel mViewModel;

    private Button activity_security;

    private ImageButton imageButton;

    private ImageButton imageButton2;

    private ImageButton imageButton3;

    private ImageButton imageButton4;

    private ImageButton imageButton5;

    private ImageButton imageButton6;

 

 

 

    private ViewPager viewPager;

 

    private LinearLayout pointGroup;

 

    private TextView iamgeDesc;

 

    // 图片资源ID

    private final int[] imageIds = { R.drawable.skiing, R.drawable.basketball_kuli, R.drawable.swimming,

            R.drawable.yaling, R.drawable.yumaoqiu };

 

    // 图片标题集合

    private final String[] imageDescriptions = { "在滑雪中我们需要注意什么",

            "怎样让自己的球技更胜一筹", "热夏即将来临,追备好游泳了吗", "哑铃你真的会用吗", "课间休息,不如来一场激烈的对抗" };

 

    private ArrayList<ImageView> imageList;

 

    /**

     * 上一个页面的位置

     */

    protected int lastPosition;

 

 

    public static FirstFragment newInstance() {

        return new FirstFragment();

    }

 

    @Override

    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,

                             @Nullable Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.first_fragment, container, false);

 

        //设置全屏显示

        /*getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

                WindowManager.LayoutParams.FLAG_FULLSCREEN);*/

 

        imageButton = view.findViewById(R.id.imageButton);

        imageButton2 = view.findViewById(R.id.imageButton2);

        imageButton3 = view.findViewById(R.id.imageButton3);

        imageButton4 = view.findViewById(R.id.imageButton4);

        imageButton5 = view.findViewById(R.id.imageButton5);

        imageButton6 = view.findViewById(R.id.imageButton6);

        return view;

    }

 

    @Override

    public void onActivityCreated(@Nullable Bundle savedInstanceState) {

        super.onActivityCreated(savedInstanceState);

        mViewModel = new ViewModelProvider(this).get(FirstViewModel.class);

 

        viewPager = getView().findViewById(R.id.viewpager);

        pointGroup = getView().findViewById(R.id.point_group);

        iamgeDesc = getView().findViewById(R.id.image_desc);

        iamgeDesc.setText(imageDescriptions[0]);

 

        imageList = new ArrayList<ImageView>();

        for (int i = 0; i < imageIds.length; i++) {

 

            // 初始化图片资源

            ImageView image = new ImageView(getContext());

            image.setBackgroundResource(imageIds[i]);

            imageList.add(image);

 

            // 添加指示点

            ImageView point = new ImageView(getContext());

            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(

                    LinearLayout.LayoutParams.WRAP_CONTENT,

                    LinearLayout.LayoutParams.WRAP_CONTENT);

 

            params.rightMargin = 20;

            point.setLayoutParams(params);

 

            point.setBackgroundResource(R.drawable.point_bg);

            if (i == 0) {

                point.setEnabled(true);

            } else {

                point.setEnabled(false);

            }

            pointGroup.addView(point);

        }

 

        viewPager.setAdapter(new MyPagerAdapter());

 

        // viewPager.setCurrentItem(Integer.MAX_VALUE/2 -

        // (Integer.MAX_VALUE/2%imageList.size())) ;

 

        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

 

            @Override

            /**

             * 页面切换后调用

             * position 新的页面位置

             */

            public void onPageSelected(int position) {

 

                position = position % imageList.size();

 

                // 设置文字描述内容

                iamgeDesc.setText(imageDescriptions[position]);

 

                // 改变指示点的状态

                // 把当前点enbale 为true

                pointGroup.getChildAt(position).setEnabled(true);

                // 把上一个点设为false

                pointGroup.getChildAt(lastPosition).setEnabled(false);

                lastPosition = position;

 

            }

 

            @Override

            /**

             * 页面正在滑动的时候,回调

             */

            public void onPageScrolled(int position, float positionOffset,

                                       int positionOffsetPixels) {

            }

 

            @Override

            /**

             * 当页面状态发生变化的时候,回调

             */

            public void onPageScrollStateChanged(int state) {

 

            }

        });

 

        /*

         * 自动循环: 1、定时器:Timer 2、开子线程 while true 循环 3、ColckManager 4、 用handler

         * 发送延时信息,实现循环

         */

        isRunning = true;

        // 设置图片的自动滑动

        handler.sendEmptyMessageDelayed(0, 3000);

        imageButton.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                Intent i = new Intent(getActivity(), Basketball_activity.class);

                startActivity(i);

            }

        });

        imageButton2.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                Intent i = new Intent(getActivity(),Football_activity.class);

                startActivity(i);

            }

        });

        imageButton3.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                Intent i = new Intent(getActivity(), Volleyball_activity.class);

                startActivity(i);

            }

        });

        imageButton4.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                Intent i = new Intent(getActivity(), Tabletennis_activity.class);

                startActivity(i);

            }

        });

        imageButton5.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                Intent i = new Intent(getActivity(), Longrun_activity.class);

                startActivity(i);

            }

        });

        imageButton6.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                Intent i = new Intent(getActivity(), More_activity.class);

                startActivity(i);

            }

        });

 

 

    }

    /**

     * 判断是否自动滚动

     */

    private boolean isRunning = false;

 

    private Handler handler = new Handler() {

        public void handleMessage(android.os.Message msg) {

 

            // 让viewPager 滑动到下一页

            viewPager.setCurrentItem(viewPager.getCurrentItem() + 1);

            if (isRunning) {

                handler.sendEmptyMessageDelayed(0, 3000);

            }

        };

    };

 

    public void onDestroy() {

 

        super.onDestroy();

        isRunning = false;

    };

 

    private class MyPagerAdapter extends PagerAdapter {

 

        @Override

        /**

         * 获得页面的总数

         */

        public int getCount() {

            return Integer.MAX_VALUE; // 使得图片可以循环

        }

 

        @Override

        /**

         * 获得相应位置上的view

         * container view的容器,其实就是viewpager自身

         * position 相应的位置

         */

        public Object instantiateItem(ViewGroup container, int position) {

 

            // System.out.println("instantiateItem ::" + position);

 

            // 给 container 添加一个view

            container.addView(imageList.get(position % imageList.size()));

            // 返回一个和该view相对的object

            return imageList.get(position % imageList.size());

        }

 

        @Override

        /**

         * 判断 view和object的对应关系

         */

        public boolean isViewFromObject(View view, Object object) {

            if (view == object) {

                return true;

            } else {

                return false;

            }

        }

 

        @Override

        /**

         * 销毁对应位置上的object

         */

        public void destroyItem(ViewGroup container, int position, Object object) {

            // System.out.println("destroyItem ::" + position);

 

            container.removeView((View) object);

            object = null;

        }

    }

 

}

运行截图:

 

 

posted @ 2022-04-24 23:34  超越小队  阅读(44)  评论(0)    收藏  举报