package com.huaye.odyandroidstore.library; import android.annotation.TargetApi; import android.content.Intent; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.support.design.widget.CoordinatorLayout; import android.support.v4.view.ViewPager; import android.support.v7.widget.CardView; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.huaye.odyandroidstore.R; import com.huaye.odyandroidstore.base.BaseFragment; import com.huaye.odyandroidstore.constraint.ConstraintActivity; import com.huaye.odyandroidstore.customview.CircleMenuActivity; import com.huaye.odyandroidstore.drawable.ShapeDrawableActivity; import com.huaye.odyandroidstore.expandablelist.ExpandableActivity; import com.huaye.odyandroidstore.hotfix.HotFixActivity; import com.huaye.odyandroidstore.imitate.taobao.TaobaoSearchResultActivity; import com.huaye.odyandroidstore.md.CoordinatorActivity; import com.huaye.odyandroidstore.md.CoordinatorMobileActivity; import com.huaye.odyandroidstore.utils.ConvertUtils; import com.huaye.odyandroidstore.utils.ScreenUtils; import com.huaye.odyandroidstore.utils.StringUtils; import java.util.ArrayList; import java.util.List; public class LibraryFragment extends BaseFragment { private static final String EXTRA_CUSTOM_TABS_SESSION = "android.support.customtabs.extra.SESSION"; private FunctionPagerAdapter pagerAdapter; private ImageView docImg; private ViewPager viewPager; private List<View> views; private List<Function> funList = new ArrayList<>(); @Override protected void init() { super.init(); views = new ArrayList<>(); } @Override protected int bindLayout() { return R.layout.fragment_main; } @Override protected void initView(View view) { viewPager = (ViewPager) view.findViewById(R.id.viewPager); docImg = (ImageView) view.findViewById(R.id.docImg); CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) viewPager.getLayoutParams(); layoutParams.width = ScreenUtils.getScreenWidth() - ConvertUtils.dp2px(80); layoutParams.setMargins(ConvertUtils.dp2px(16), ConvertUtils.dp2px(48 + 16), ConvertUtils.dp2px(16), ConvertUtils.dp2px(16)); viewPager.setLayoutParams(layoutParams); viewPager.setPageMargin(ConvertUtils.dp2px(8)); int index = 0; funList = getData(); for (Function function : getData()) { CardView cv = (CardView) LayoutInflater.from(mContext).inflate(R.layout.item_vp_fun, null); // if (index++ % 2 != 0) { // cv.setCardBackgroundColor(Color.parseColor("#DDDDDD")); // } else { // cv.setCardBackgroundColor(Color.WHITE); // } ImageView img = (ImageView) cv.findViewById(R.id.img); TextView name = (TextView) cv.findViewById(R.id.name); TextView des = (TextView) cv.findViewById(R.id.des); name.setText(function.getName()); des.setText(function.getDes()); if (function.getImgId() > 0) { Glide.with(mContext).load(function.getImgId()).diskCacheStrategy(DiskCacheStrategy.ALL).into(img); } else { Glide.with(mContext).load(function.getImgUrl()).diskCacheStrategy(DiskCacheStrategy.ALL).into(img); } cv.setTag(function); cv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Function f = (Function) view.getTag(); if (f.getClazz() == null) return; Intent intent = new Intent(mContext, f.getClazz()); if (!StringUtils.isEmpty(f.getExtra())) { intent.putExtra("extra", f.getExtra()); } startActivity(intent); } }); views.add(cv); } pagerAdapter = new FunctionPagerAdapter(views); viewPager.setAdapter(pagerAdapter); viewPager.setOffscreenPageLimit(2); } @Override protected void initData() { super.initData(); } @Override protected void initListener() { super.initListener(); viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); docImg.setOnClickListener(new View.OnClickListener() { @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2) @Override public void onClick(View view) { String url = funList.get(viewPager.getCurrentItem()).getDocUrl(); Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); Bundle extras = new Bundle(); extras.putBinder(EXTRA_CUSTOM_TABS_SESSION, null); intent.putExtras(extras); startActivity(intent); } }); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.menu_title, menu); super.onCreateOptionsMenu(menu, inflater); } private List<Function> getData() { List<Function> items = new ArrayList<>(); items.add(new Function() .setDocUrl("http://www.jianshu.com/p/34b35a8c0a1c") .setImgUrl("http://bmob-cdn-9267.b0.upaiyun.com/2017/03/15/ee12d5414021046680f60aeef39f2f58.gif") .setName("来伊份---首页") .setClazz(HotFixActivity.class)); items.add(new Function() .setDocUrl("http://www.jianshu.com/p/34b35a8c0a1c") .setImgUrl("http://bmob-cdn-9267.b0.upaiyun.com/2017/03/15/ee12d5414021046680f60aeef39f2f58.gif") .setName("热修复---AndFix") .setClazz(HotFixActivity.class)); items.add(new Function() .setDocUrl("http://www.jianshu.com/p/34b35a8c0a1c") .setImgUrl("http://bmob-cdn-9267.b0.upaiyun.com/2017/03/15/ee12d5414021046680f60aeef39f2f58.gif") .setName("高仿淘宝搜索结果页") .setClazz(TaobaoSearchResultActivity.class)); items.add(new Function() .setDocUrl("http://www.jianshu.com/p/34b35a8c0a1c") .setImgUrl("http://bmob-cdn-9267.b0.upaiyun.com/2017/03/10/490877fa40a9614e80f5ce50c0a7668e.gif") .setName("圆形菜单") .setClazz(CircleMenuActivity.class)); items.add(new Function() .setDocUrl("https://github.com/samuelhuahui/OdyAndroidStore/wiki") .setImgUrl("http://bmob-cdn-9267.b0.upaiyun.com/2017/02/28/1d793194404e4c9d80a86aaf1052833d.gif") .setName("CoordinatorLayout进阶") .setClazz(CoordinatorActivity.class)); items.add(new Function() .setDocUrl("http://www.jianshu.com/p/b68dab7258df") .setImgUrl("http://bmob-cdn-9267.b0.upaiyun.com/2017/02/28/4918bfd640d30bf080ccaa943de45af3.gif") .setName("CoordinatorLayout使用(高仿【摩拜单车】个人中心)") .setClazz(CoordinatorMobileActivity.class)); items.add(new Function() .setDocUrl("http://www.jianshu.com/p/aa6c9b377cb0") .setImgUrl("http://bmob-cdn-9267.b0.upaiyun.com/2017/03/13/7a63162b40df4eec80e02d030c9cad9b.png") .setName("shape使用总结") .setClazz(ShapeDrawableActivity.class)); items.add(new Function() .setDocUrl("http://www.jianshu.com/p/b3cd72524b11") .setImgUrl("http://bmob-cdn-9150.b0.upaiyun.com/2017/02/19/8a52a75640d5f75080b6f96ba424428d.gif") .setName("ConstraintLayout实战") .setClazz(ConstraintActivity.class)); items.add(new Function() .setDocUrl("http://www.jianshu.com/p/027395fd3c67") .setImgUrl("http://upload-images.jianshu.io/upload_images/4751442-02adb2faf95c9bd7.png?imageMogr2/auto-orient/strip%7CimageView2/2") .setName("比ExpandableListView更强大的分组列表实现") .setClazz(ExpandableActivity.class)); return items; } }