今日頭條的首頁

public class ShouyeActivity extends FragmentActivity {


    private int widths;
    private ViewPager vp;
    private HorizontalScrollView hs;
    private RadioGroup rg;
    private ArrayList<Fragment> flist;
    private ImageView user_img;
    private ImageView sou_img;
    private SlidingMenu menu;


    private String[] url = new String[] {
            "http://ic.snssdk.com/2/article/v25/stream/?count=20&min_behot_time=1468841996&bd_city=%E5%8C%97%E4%BA%AC%E5%B8%82&bd_latitude=40.039927&bd_longitude=116.299222&bd_loc_time=1468897525&loc_mode=7&loc_time=1468897489&latitude=40.046144180692714&longitude=116.30569239609902&city=%E5%8C%97%E4%BA%AC%E5%B8%82&lac=4530&cid=30481&iid=4878106677&device_id=5626561549&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=PLK-TL01H&os_api=23&os_version=6.0&uuid=867689026581753&openudid=5e124a3bdab87e89",
            "http://ic.snssdk.com/2/article/v25/stream/?category=news_hot&count=20&min_behot_time=1468841393&bd_city=北京市&bd_latitude=40.040079&bd_longitude=116.299419&bd_loc_time=1468899819&loc_mode=7&loc_time=1468899006&latitude=40.04610786144017&longitude=116.3056378726328&city=北京市&lac=4530&cid=30481&iid=4878106677&device_id=5626561549&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=PLK-TL01H&os_api=23&os_version=6.0&uuid=867689026581753&openudid=5e124a3bdab87e89",
            "http://ic.snssdk.com/2/article/v25/stream/?category=news_society&count=20&min_behot_time=1468826858&bd_city=%E5%8C%97%E4%BA%AC%E5%B8%82&bd_latitude=40.040066&bd_longitude=116.299354&bd_loc_time=1468900541&loc_mode=7&loc_time=1468899819&latitude=40.04610786144017&longitude=116.3056378726328&city=%E5%8C%97%E4%BA%AC%E5%B8%82&lac=4530&cid=28615&iid=4878106677&device_id=5626561549&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=PLK-TL01H&os_api=23&os_version=6.0&uuid=867689026581753&openudid=5e124a3bdab87e89",
            "http://ic.snssdk.com/2/article/v25/stream/?category=news_entertainment&count=20&bd_city=北京市&bd_latitude=40.040066&bd_longitude=116.299354&bd_loc_time=1468900541&loc_mode=7&loc_time=1468899819&latitude=40.04610786144017&longitude=116.3056378726328&city=北京市&lac=4530&cid=28615&iid=4878106677&device_id=5626561549&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=PLK-TL01H&os_api=23&os_version=6.0&uuid=867689026581753&openudid=5e124a3bdab87e89",
            "http://ic.snssdk.com/2/article/v25/stream/?category=news_tech&count=20&bd_city=北京市&bd_latitude=40.040093&bd_longitude=116.299416&bd_loc_time=1469177219&loc_mode=7&loc_time=1469173827&latitude=40.046167846793544&longitude=116.30570547437816&city=北京市&lac=4530&cid=28615&iid=4878106677&device_id=5626561549&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=PLK-TL01H&os_api=23&os_version=6.0&uuid=867689026581753&openudid=5e124a3bdab87e89",
            "http://ic.snssdk.com/2/article/v25/stream/?category=news_car&count=20&bd_city=%E5%8C%97%E4%BA%AC%E5%B8%82&bd_latitude=40.040093&bd_longitude=116.299416&bd_loc_time=1469177219&loc_mode=7&loc_time=1469173827&latitude=40.046167846793544&longitude=116.30570547437816&city=%E5%8C%97%E4%BA%AC%E5%B8%82&lac=4530&cid=28615&iid=4878106677&device_id=5626561549&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=PLK-TL01H&os_api=23&os_version=6.0&uuid=867689026581753&openudid=5e124a3bdab87e89",
            "http://ic.snssdk.com/2/article/v25/stream/?category=news_sports&count=20&bd_city=%E5%8C%97%E4%BA%AC%E5%B8%82&bd_latitude=40.040093&bd_longitude=116.299416&bd_loc_time=1469177219&loc_mode=7&loc_time=1469173827&latitude=40.046167846793544&longitude=116.30570547437816&city=%E5%8C%97%E4%BA%AC%E5%B8%82&lac=4530&cid=28615&iid=4878106677&device_id=5626561549&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=PLK-TL01H&os_api=23&os_version=6.0&uuid=867689026581753&openudid=5e124a3bdab87e89",
            "http://ic.snssdk.com/2/article/v25/stream/?category=news_finance&count=20&bd_city=%E5%8C%97%E4%BA%AC%E5%B8%82&bd_latitude=40.040093&bd_longitude=116.299416&bd_loc_time=1469177219&loc_mode=7&loc_time=1469173827&latitude=40.046167846793544&longitude=116.30570547437816&city=%E5%8C%97%E4%BA%AC%E5%B8%82&lac=4530&cid=28615&iid=4878106677&device_id=5626561549&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=PLK-TL01H&os_api=23&os_version=6.0&uuid=867689026581753&openudid=5e124a3bdab87e89",
            "http://ic.snssdk.com/2/article/v25/stream/?category=news_military&count=20&bd_city=%E5%8C%97%E4%BA%AC%E5%B8%82&bd_latitude=40.040093&bd_longitude=116.299416&bd_loc_time=1469177219&loc_mode=7&loc_time=1469173827&latitude=40.046167846793544&longitude=116.30570547437816&city=%E5%8C%97%E4%BA%AC%E5%B8%82&lac=4530&cid=28615&iid=4878106677&device_id=5626561549&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=PLK-TL01H&os_api=23&os_version=6.0&uuid=867689026581753&openudid=5e124a3bdab87e89",
            "http://ic.snssdk.com/2/article/v25/stream/?category=news_health&count=20&bd_city=北京市&bd_latitude=40.040066&bd_longitude=116.299354&bd_loc_time=1469177855&loc_mode=7&loc_time=1469177467&latitude=40.046244950479775&longitude=116.30577088692061&city=北京市&lac=4530&cid=30481&iid=4878106677&device_id=5626561549&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=PLK-TL01H&os_api=23&os_version=6.0&uuid=867689026581753&openudid=5e124a3bdab87e89",
            "http://ic.snssdk.com/2/article/v25/stream/?category=news_local&count=20&min_behot_time=1469176640&bd_city=%E5%8C%97%E4%BA%AC%E5%B8%82&bd_latitude=40.04005&bd_longitude=116.299307&bd_loc_time=1469182975&loc_mode=7&loc_time=1469182965&latitude=40.04623505402024&longitude=116.30576189228731&city=%E5%8C%97%E4%BA%AC%E5%B8%82&user_city=%E5%8C%97%E4%BA%AC&lac=4530&cid=30481&iid=4878106677&device_id=5626561549&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=PLK-TL01H&os_api=23&os_version=6.0&uuid=867689026581753&openudid=5e124a3bdab87e89",
            "http://ic.snssdk.com/2/article/v25/refresh_tip/?category=video&min_behot_time=1469177142&city=%E5%8C%97%E4%BA%AC%E5%B8%82&iid=4878106677&device_id=5626561549&ac=wifi&channel=baidu&aid=13&app_name=news_article&version_code=460&device_platform=android&device_type=PLK-TL01H&os_api=23&os_version=6.0&uuid=867689026581753&openudid=5e124a3bdab87e89" };


    @Override
    public void onCreate(Bundle savedInstanceState) {
        setContentView(R.layout.activity_shouye);
        super.onCreate(savedInstanceState);


        // 獲取屏幕寬度
        widths = getResources().getDisplayMetrics().widthPixels;


        // 控件
        vp = (ViewPager) findViewById(R.id.pager);
        hs = (HorizontalScrollView) findViewById(R.id.hs);
        rg = (RadioGroup) findViewById(R.id.radioGroup);
        user_img = (ImageView) findViewById(R.id.user);
        sou_img = (ImageView) findViewById(R.id.sou);


        fragmentList();


        // 默認是第一個被選中
        rg.getChildAt(0).setSelected(true);


        // 按鈕
        initbutton();
        // 適配器
        PagerAdapter();


        // 默認
        vp.setCurrentItem(0);
        ChangeView(0);
        // 側滑
        CeHua();
    }


    // 側滑
    public void CeHua() {
        // 獲取slindingmenu
        menu = new SlidingMenu(this);
        // 設置菜單模式
        menu.setMode(SlidingMenu.LEFT);
        // 設置觸屏模式
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
        // 側滑之後的剩餘寬度
        menu.setBehindOffsetRes(R.dimen.kuan);
        menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
        // 設置佈局文件 避免視圖重複,弄個空的視圖
        menu.setMenu(R.layout.kong);
        // 側滑出一個fragment
        getSupportFragmentManager().beginTransaction().replace(R.id.kong, new CeHuaFragment()).commit();
    }


    public void PagerAdapter() {
        // TODO Auto-generated method stub
        vp.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {


            @Override
            public int getCount() {
                // TODO Auto-generated method stub
                return flist.size();
            }


            @Override
            public Fragment getItem(int arg0) {
                Fragment fragment = flist.get(arg0);
                Bundle args = new Bundle();
                args.putString("category", url[arg0]);
                fragment.setArguments(args);


                return fragment;
            }
        });
        vp.setOnPageChangeListener(new OnPageChangeListener() {


            @Override
            public void onPageSelected(int arg0) {
                // TODO Auto-generated method stub


                    vp.setCurrentItem(arg0); // 導航 
                    selectTab(arg0); // 改變字體顏色
                    ChangeView(arg0);



            }


            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                // TODO Auto-generated method stub


            }


            @Override
            public void onPageScrollStateChanged(int arg0) {
                // TODO Auto-generated method stub


            }
        });
    }


    public void initbutton() {
        // TODO Auto-generated method stub
        for (int i = 0; i < rg.getChildCount(); i++) {


            RadioButton but = (RadioButton) rg.getChildAt(i);
            final int index = i;
            // 事件
            but.setOnClickListener(new OnClickListener() {


                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    // 切換視圖
                    vp.setCurrentItem(index);
                    // 導航
                    selectTab(index);
                    // 改變字體顏色
                    ChangeView(index);
                }
            });
        }


        user_img.setOnClickListener(new OnClickListener() {


            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub


                menu.showMenu();
            }
        });
        sou_img.setOnClickListener(new OnClickListener() {


            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent intent = new Intent(ShouyeActivity.this, SousuoActivity.class);
                startActivity(intent);
            }
        });
    }


    public void fragmentList() {
        // TODO Auto-generated method stub
        flist = new ArrayList<Fragment>();
        for (int i = 0; i < rg.getChildCount(); i++) {
            MyFragment frg = new MyFragment();
            flist.add(frg);
        }
    }


    public void ChangeView(int tag) {
        // TODO Auto-generated method stub
        for (int i = 0; i < rg.getChildCount(); i++) {
            RadioButton rb = (RadioButton) rg.getChildAt(i);
            if (tag == i) {
                rb.setTextColor(Color.RED);
            } else {
                rb.setTextColor(Color.GRAY);
            }
        }
    }


    public void selectTab(int index) {
        // TODO Auto-generated method stub
        int childCount = rg.getChildCount();
        for (int i = 0; i < childCount; i++) {
            View child = rg.getChildAt(i);
            child.setSelected(i == index);
        }
        View curTabView = rg.getChildAt(index);
        int left = curTabView.getLeft();
        int width = curTabView.getMeasuredWidth();
        int toX = left + width / 2 - widths / 2;
        hs.smoothScrollTo(toX, 0);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章