第二次冲刺
第二次冲刺
在第二个冲刺完成了主界面的设计,包括导航轮播图,我的界面的完善,干的活有点少。
源代码:
我的界面:
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;
}
}
}
运行截图:

浙公网安备 33010602011771号