package com.tiger.quicknews.activity; import android.annotation.SuppressLint; import android.content.Intent; import android.support.v4.app.Fragment; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.view.WindowManager; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; import com.tiger.quicknews.App; import com.tiger.quicknews.R; import com.tiger.quicknews.adapter.NewsFragmentPagerAdapter; import com.tiger.quicknews.bean.ChannelItem; import com.tiger.quicknews.bean.ChannelManage; import com.tiger.quicknews.fragment.*; import com.tiger.quicknews.initview.SlidingMenuView; import com.tiger.quicknews.utils.BaseTools; import com.tiger.quicknews.view.*; import com.tiger.quicknews.wedget.ColumnHorizontalScrollView; import com.tiger.quicknews.wedget.slidingmenu.SlidingMenu; import com.umeng.analytics.MobclickAgent; import com.umeng.update.UmengUpdateAgent; import org.androidannotations.annotations.AfterInject; import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.Background; import org.androidannotations.annotations.Click; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.UiThread; import org.androidannotations.annotations.ViewById; import java.util.ArrayList; @EActivity(R.layout.main) public class MainActivity extends BaseActivity { /** 自定义HorizontalScrollView */ @ViewById(R.id.mColumnHorizontalScrollView) protected ColumnHorizontalScrollView mColumnHorizontalScrollView; @ViewById(R.id.mRadioGroup_content) protected LinearLayout mRadioGroup_content; @ViewById(R.id.ll_more_columns) protected LinearLayout ll_more_columns; @ViewById(R.id.rl_column) protected RelativeLayout rl_column; @ViewById(R.id.button_more_columns) protected ImageView button_more_columns; @ViewById(R.id.mViewPager) protected ViewPager mViewPager; @ViewById(R.id.shade_left) protected ImageView shade_left; @ViewById(R.id.shade_right) protected ImageView shade_right; protected LeftView mLeftView; protected SlidingMenu side_drawer; /** 屏幕宽度 */ private int mScreenWidth = 0; /** Item宽度 */ private int mItemWidth = 0; /** head 头部 的左侧菜单 按钮 */ @ViewById(R.id.top_head) protected ImageView top_head; /** head 头部 的右侧菜单 按钮 */ @ViewById(R.id.top_more) protected ImageView top_more; /** 用户选择的新闻分类列表 */ protected static ArrayList<ChannelItem> userChannelLists; /** 请求CODE */ public final static int CHANNELREQUEST = 1; /** 调整返回的RESULTCODE */ public final static int CHANNELRESULT = 10; /** 当前选中的栏目 */ private int columnSelectIndex = 0; private ArrayList<Fragment> fragments; private Fragment newfragment; private double back_pressed; public static boolean isChange = false; private NewsFragmentPagerAdapter mAdapetr; /** 当前选中的栏目 */ @Override public boolean isSupportSlide() { return false; } @SuppressLint("InlinedApi") @AfterInject void init() { getWindow().setFlags( WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED, WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED); UmengUpdateAgent.update(this); MobclickAgent.updateOnlineConfig(this); mScreenWidth = BaseTools.getWindowsWidth(this); mItemWidth = mScreenWidth / 7;// 一个Item宽度为屏幕的1/7 userChannelLists = new ArrayList<ChannelItem>(); fragments = new ArrayList<Fragment>(); } @AfterViews void initView() { try { initSlidingMenu(); initViewPager(); setChangelView(); } catch (Exception e) { e.printStackTrace(); } } private void initViewPager() { mAdapetr = new NewsFragmentPagerAdapter( getSupportFragmentManager()); mViewPager.setOffscreenPageLimit(1); mViewPager.setAdapter(mAdapetr); mViewPager.setOnPageChangeListener(pageListener); } protected void initSlidingMenu() { mLeftView = LeftView_.build(this); side_drawer = SlidingMenuView.instance().initSlidingMenuView(this, mLeftView); } @Click(R.id.top_head) protected void onMenu(View view) { if (side_drawer.isMenuShowing()) { side_drawer.showContent(); } else { side_drawer.showMenu(); } } // @Click(R.id.top_more) // protected void onAcount(View view) { // if (side_drawer.isSecondaryMenuShowing()) { // side_drawer.showContent(); // } else { // side_drawer.showSecondaryMenu(); // } // } @Click(R.id.button_more_columns) protected void onMoreColumns(View view) { openActivityForResult(ChannelActivity_.class, CHANNELREQUEST); } /** * 当栏目项发生变化时候调用 */ public void setChangelView() { initColumnData(); } /** 获取Column栏目 数据 */ private void initColumnData() { userChannelLists = ((ArrayList<ChannelItem>) ChannelManage.getManage( App.getApp().getSQLHelper()).getUserChannel()); initTabColumn(); initFragment(); } /** * 初始化Column栏目项 */ private void initTabColumn() { mRadioGroup_content.removeAllViews(); int count = userChannelLists.size(); mColumnHorizontalScrollView.setParam(this, mScreenWidth, mRadioGroup_content, shade_left, shade_right, ll_more_columns, rl_column); for (int i = 0; i < count; i++) { LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(mItemWidth, LayoutParams.WRAP_CONTENT); params.leftMargin = 5; params.rightMargin = 5; // TextView localTextView = (TextView) // mInflater.inflate(R.layout.column_radio_item, null); TextView columnTextView = new TextView(this); columnTextView.setTextAppearance(this, R.style.top_category_scroll_view_item_text); // localTextView.setBackground(getResources().getDrawable(R.drawable.top_category_scroll_text_view_bg)); columnTextView.setBackgroundResource(R.drawable.radio_buttong_bg); columnTextView.setGravity(Gravity.CENTER); columnTextView.setPadding(5, 5, 5, 5); columnTextView.setId(i); columnTextView.setText(userChannelLists.get(i).getName()); columnTextView.setTextColor(getResources().getColorStateList( R.color.top_category_scroll_text_color_day)); if (columnSelectIndex == i) { columnTextView.setSelected(true); } columnTextView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { for (int i = 0; i < mRadioGroup_content.getChildCount(); i++) { View localView = mRadioGroup_content.getChildAt(i); if (localView != v) localView.setSelected(false); else { localView.setSelected(true); mViewPager.setCurrentItem(i); } } } }); mRadioGroup_content.addView(columnTextView, i, params); } } /** * 初始化Fragment */ private void initFragment() { fragments.clear(); int count = userChannelLists.size(); for (int i = 0; i < count; i++) { // Bundle data = new Bundle(); String nameString = userChannelLists.get(i).getName(); // data.putString("text", nameString); // data.putInt("id", userChannelList.get(i).getId()); // initFragment(nameString); // map.put(nameString, nameString); // newfragment.setArguments(data); fragments.add(initFragment(nameString)); // fragments.add(nameString); } mAdapetr.appendList(fragments); } public Fragment initFragment(String channelName) { if (channelName.equals("头条")) { newfragment = new NewsFragment_(); } else if (channelName.equals("足球")) { newfragment = new FoodBallFragment_(); } else if (channelName.equals("娱乐")) { newfragment = new YuLeFragment_(); } else if (channelName.equals("体育")) { newfragment = new TiYuFragment_(); } else if (channelName.equals("财经")) { newfragment = new CaiJingFragment_(); } else if (channelName.equals("科技")) { newfragment = new KeJiFragment_(); } else if (channelName.equals("电影")) { newfragment = new DianYingFragment_(); } else if (channelName.equals("汽车")) { newfragment = new QiCheFragment_(); } else if (channelName.equals("笑话")) { newfragment = new XiaoHuaFragment_(); } else if (channelName.equals("时尚")) { newfragment = new ShiShangFragment_(); } else if (channelName.equals("北京")) { newfragment = new BeiJingFragment_(); } else if (channelName.equals("军事")) { newfragment = new JunShiFragment_(); } else if (channelName.equals("房产")) { newfragment = new FangChanFragment_(); } else if (channelName.equals("游戏")) { newfragment = new YouXiFragment_(); } else if (channelName.equals("情感")) { newfragment = new QinGanFragment_(); } else if (channelName.equals("精选")) { newfragment = new JingXuanFragment_(); } else if (channelName.equals("电台")) { newfragment = new DianTaiFragment_(); } else if (channelName.equals("图片")) { newfragment = new TuPianFragment_(); } else if (channelName.equals("NBA")) { newfragment = new NBAFragment_(); } else if (channelName.equals("数码")) { newfragment = new ShuMaFragment_(); } else if (channelName.equals("移动")) { newfragment = new YiDongFragment_(); } else if (channelName.equals("彩票")) { newfragment = new CaiPiaoFragment_(); } else if (channelName.equals("教育")) { newfragment = new JiaoYuFragment_(); } else if (channelName.equals("论坛")) { newfragment = new LunTanFragment_(); } else if (channelName.equals("旅游")) { newfragment = new LvYouFragment_(); } else if (channelName.equals("手机")) { newfragment = new ShouJiFragment_(); } else if (channelName.equals("博客")) { newfragment = new BoKeFragment_(); } else if (channelName.equals("社会")) { newfragment = new SheHuiFragment_(); } else if (channelName.equals("家居")) { newfragment = new JiaJuFragment_(); } else if (channelName.equals("暴雪")) { newfragment = new BaoXueYouXiFragment_(); } else if (channelName.equals("亲子")) { newfragment = new QinZiFragment_(); } else if (channelName.equals("CBA")) { newfragment = new CBAFragment_(); } return newfragment; } /** * ViewPager切换监听方法 */ public OnPageChangeListener pageListener = new OnPageChangeListener() { @Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageSelected(int position) { mViewPager.setCurrentItem(position); selectTab(position); } }; /** * 选择的Column里面的Tab */ private void selectTab(int tab_postion) { columnSelectIndex = tab_postion; for (int i = 0; i < mRadioGroup_content.getChildCount(); i++) { View checkView = mRadioGroup_content.getChildAt(tab_postion); int k = checkView.getMeasuredWidth(); int l = checkView.getLeft(); int i2 = l + k / 2 - mScreenWidth / 2; // rg_nav_content.getParent()).smoothScrollTo(i2, 0); mColumnHorizontalScrollView.smoothScrollTo(i2, 0); // mColumnHorizontalScrollView.smoothScrollTo((position - 2) * // mItemWidth , 0); } // 判断是否选中 for (int j = 0; j < mRadioGroup_content.getChildCount(); j++) { View checkView = mRadioGroup_content.getChildAt(j); boolean ischeck; if (j == tab_postion) { ischeck = true; } else { ischeck = false; } checkView.setSelected(ischeck); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { try { if (isChange) { setChangelView(); // initColumnData(); // initTabColumn(); isChange = false; } } catch (Exception e) { e.printStackTrace(); } } /** * 点击两次返回退出系统 * * @param view */ @Override public void onBackPressed() { if (side_drawer.isMenuShowing()) { side_drawer.showContent(); } else { System.out.println(isShow()); if (isShow()) { dismissProgressDialog(); } else { if (back_pressed + 3000 > System.currentTimeMillis()) { finish(); super.onBackPressed(); } else showCustomToast(getString(R.string.press_again_exit)); // Toast.makeText(this, getString(R.string.press_again_exit), // 1).show(); back_pressed = System.currentTimeMillis(); } } } @Override public void onResume() { super.onResume(); MobclickAgent.onResume(this); } @Override public void onPause() { super.onPause(); MobclickAgent.onPause(this); } }