public abstract class BaseActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); init(); } /** * 初始化 */ private void init() { setFullScreen(); setContentView(initLayout()); findView(); setOnClickLisener(); initData(); } /** * 设置点击事件 */ protected abstract void setOnClickLisener(); /** * 初始化数据 */ protected abstract void initData(); /** * 查找控件 */ protected abstract void findView(); /** * 设置全屏 */ protected abstract void setFullScreen(); /** * 填充布局 * * @return */ protected abstract int initLayout(); /** * 全屏 */ protected void fullScreen() { // 设置全屏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); } }
public class MainActivity extends BaseActivity implements View.OnClickListener { private DrawerLayout draw_layout; private ImageView imageViewlogin; private RadioGroup radioGroup; @Override protected void setOnClickLisener() { imageViewlogin.setOnClickListener(this); draw_layout.addDrawerListener(new DrawerLayout.DrawerListener() { @Override public void onDrawerSlide(@NonNull View drawerView, float slideOffset) { //滑动过程中不断回调 slideOffset:0~1 View childAt = draw_layout.getChildAt(0); float scale = 1 - slideOffset;//1~0 childAt.setTranslationX(drawerView.getMeasuredWidth() * (1 - scale));//0~width } @Override public void onDrawerOpened(@NonNull View drawerView) { } @Override public void onDrawerClosed(@NonNull View drawerView) { } @Override public void onDrawerStateChanged(int newState) { } }); radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId){ case R.id.bun1: changePager(new Fragment1()); break; case R.id.bun2: changePager(new Fragment2()); break; case R.id.bun3: changePager(new Fragment3()); break; case R.id.bun4: changePager(new Fragment4()); break; } } }); } /** * 改变页面 * * @param fragment */ private void changePager(Fragment fragment) { getSupportFragmentManager().beginTransaction().replace(R.id.fl_container, fragment).commit(); } @Override protected void initData() { radioGroup.check(R.id.bun1); } @Override protected void findView() { draw_layout = findViewById(R.id.draw_layout); imageViewlogin = findViewById(R.id.imageViewlogin); radioGroup = findViewById(R.id.radioGroup); } @Override protected void setFullScreen() { } @Override protected int initLayout() { return R.layout.activity_main; } @Override public void onClick(View v) { switch (v.getId()){ case R.id.imageViewlogin: if (draw_layout.isDrawerOpen(Gravity.START)){ draw_layout.closeDrawer(Gravity.START); } else { draw_layout.openDrawer(Gravity.START); } break; } } }
class MyAdapter extends PagerAdapter { private Context context; private ArrayList<ImageView> list; public MyAdapter(Context context, ArrayList<ImageView> list) { this.context = context; this.list = list; } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { return view == object; } @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { ImageView imageView = list.get(position % list.size()); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); container.addView(imageView); return imageView; } @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { container.removeView((View) object); } }
public class StartActivity extends BaseActivity implements Animation.AnimationListener { private AlphaAnimation alphaAnimation; private RelativeLayout rlSplash; //设置点击事件 protected void setOnClickLisener(){ } //初始化数据 protected void initData(){ alphaAnimation = new AlphaAnimation(0, 1); alphaAnimation.setDuration(2000); alphaAnimation.setAnimationListener(this); rlSplash.startAnimation(alphaAnimation); } //查找控件 protected void findView(){ rlSplash = findViewById(R.id.rl_splash); } //设置全屏 protected void setFullScreen(){ fullScreen(); } //填充布局 protected int initLayout(){ return R.layout.activity_start; } @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { toMain(); } private void toMain(){ startActivity(new Intent(this, MainActivity.class)); finish(); } @Override public void onAnimationRepeat(Animation animation) { } }
class WenAdapter extends BaseAdapter { private final Context context; private final List<Newss.DataBean> list; public WenAdapter(Context context, List<Newss.DataBean> list1) { super(); this.context=context; this.list=list1; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { HolderView holder=null; if (convertView == null){ holder= new HolderView(); convertView = View.inflate(context, R.layout.wenadapter, null); holder.t_title = (TextView) convertView.findViewById(R.id.t_title); holder.i_mage = (ImageView) convertView.findViewById(R.id.i_mage); convertView.setTag(holder); }else{ holder = (HolderView) convertView.getTag(); } holder.t_title.setText(list.get(position).getTitle()); //获取网络图片 /* DisplayImageOptions options = new DisplayImageOptions.Builder() .displayer(new RoundedBitmapDisplayer(100)) .build();*/ ImageLoader.getInstance().displayImage(list.get(position).getImg(),holder.i_mage,LoageImage.getOptions()); return convertView; } public class HolderView{ private TextView t_title; private ImageView i_mage; } }
class XlistUtils { private static XlistUtils xlistUtils; private Xlister xlister; public static XlistUtils getlist(){ if (xlistUtils==null){ xlistUtils = new XlistUtils(); } return xlistUtils; } public void getdata(String url){ MyAsktaxsk data = new MyAsktaxsk(); data.execute(url); } private class MyAsktaxsk extends AsyncTask<String,Integer,String> { @Override protected String doInBackground(String... strings) { String path = strings[0]; try { URL url = new URL(path); HttpURLConnection Connection = (HttpURLConnection) url.openConnection(); Connection.setRequestMethod("GET"); Connection.setReadTimeout(5000); Connection.setConnectTimeout(5000); if (Connection.getResponseCode() == 200){ InputStream inputStream = Connection.getInputStream(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] by = new byte[1024]; int len = 0; while ((len = inputStream.read(by)) != -1){ bos.write(by,0,len); } inputStream.close(); bos.close(); String json = bos.toString(); return json; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Log.i("aaa",s); xlister.getjson(s); } } public interface Xlister{ public void getjson(String json); } public void SetXlistr(Xlister xlister){ this.xlister = xlister; } }
public class Fragment1 extends Fragment { String path = "http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=15&page="; private ArrayList<ImageView> list; private List<com.bwei.dell.myprojecttwo.Newss.DataBean> list1 = new ArrayList<>(); private int num = 1; private View view; private XListView x_listview; private WenAdapter adapter1; private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == 0){ String json = (String) msg.obj; Gson gson = new Gson(); News news = gson.fromJson(json, News.class); List<News.BannerBean> banner = news.getBanner(); for (int i=0;i<banner.size(); i++){ String image_url = banner.get(i).getImage_url(); ImageView imageView = new ImageView(getActivity()); DisplayImageOptions options = LoageImage.getOptions(); ImageLoader.getInstance().displayImage(image_url,imageView,options); list.add(imageView); } MyAdapter adapter = new MyAdapter(getActivity(),list); vp.setAdapter(adapter); }else if (msg.what == 1){ int i = vp.getCurrentItem(); vp.setCurrentItem(++i); handler.sendEmptyMessageDelayed(1,1000); } } }; private ViewPager vp; private RadioGroup rg; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment1,container,false); vp = (ViewPager) view.findViewById(R.id.vp); rg = (RadioGroup) view.findViewById(R.id.radio_group); list = new ArrayList<>(); getdataimg(); initfrom(); getdatafrom(); vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { rg.check(rg.getChildAt(position%list.size()).getId()); } @Override public void onPageScrollStateChanged(int state) { } }); return view; } private void initfrom() { x_listview = (XListView) view.findViewById(R.id.x_listview); //可以刷新 x_listview.setPullRefreshEnable(true); //可以加载 x_listview.setPullLoadEnable(true); //设置监听方法 x_listview.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() {//刷新 num = 1; getdatafrom(); } @Override public void onLoadMore() {//加载 num += 1; Log.i("sss",num+""); getdatafrom(); } }); adapter1 = new WenAdapter(getActivity(),list1); x_listview.setAdapter(adapter1); } private void getdataimg() { new Thread(){ @Override public void run() { super.run(); String path ="http://result.eolinker.com/iYXEPGn4e9c6dafce6e5cdd23287d2bb136ee7e9194d3e9?uri=banner"; try { URL url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); connection.setRequestMethod("GET"); if (connection.getResponseCode() == 200){ InputStream inputStream = connection.getInputStream(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] by = new byte[1024]; int len = 0; while ((len = inputStream.read(by)) !=-1){ bos.write(by,0,len); } inputStream.close(); bos.close(); String json = bos.toString(); Message message = new Message(); message.what = 0; message.obj = json; handler.sendMessage(message); } } catch (Exception e) { e.printStackTrace(); } } }.start(); } @Override public void onResume() { super.onResume(); handler.sendEmptyMessageDelayed(1,1000); } @Override public void onPause() { super.onPause(); handler.removeCallbacksAndMessages(null); } private void getdatafrom() { String url = path+num; XlistUtils utils = XlistUtils.getlist(); utils.getdata(url); //接口回调 utils.SetXlistr(new XlistUtils.Xlister() { @Override public void getjson(String jsonn) { //开始 Gson gsonn = new Gson(); Newss newss = gsonn.fromJson(jsonn, Newss.class); List<Newss.DataBean> data1 = newss.getData(); if (num == 1){ list1.clear(); } //添加 list1.addAll(data1); //刷新适配器 adapter1.notifyDataSetChanged(); if (num == 1){ x_listview.stopRefresh(); }else{ x_listview.stopLoadMore(); } } }); } }
<RelativeLayout android:layout_weight="3" android:layout_width="match_parent" android:layout_height="0dp"> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="match_parent"></android.support.v4.view.ViewPager> <RadioGroup android:id="@+id/radio_group" android:layout_height="wrap_content" android:layout_width="wrap_content" android:orientation="horizontal" android:layout_marginTop="220dp" android:layout_marginLeft="330dp" > <RadioButton android:id="@+id/onebtn" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/Twobtn" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/Threebtn" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/five" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RadioGroup> </RelativeLayout> <xlistview.bawei.com.xlistviewlibrary.XListView android:id="@+id/x_listview" android:layout_weight="7" android:layout_width="match_parent" android:layout_height="0dp"></xlistview.bawei.com.xlistviewlibrary.XListView>