Android时事新闻客户端

       在学习过程中,对时时新闻客户端项目进行练习,本项目实现了新闻时时更新,其实现效果下面的图片所示:在此项目主要对界面的跳转,界面的衔接,部分功能由于时间有限,侧滑界面上的点击事件还没有实现,点击新闻列表上的信息将会显示新闻的内容,在之后将不断的完善该项目上的功能。此项目主要应用在Android 4.0以上的版本,其技术实现上主要用到了Android常用的UI控件,网络链接,ListView数据的分页加载(下拉刷新,上拉加载更多)。若有需要的朋友可以去http://download.csdn.net/detail/q394895302/9107997下载(编码方式GBK,有些注释的地方可能中文乱码,之前用UTF-8写的,引用过来的时候没有转换编码方式,其中NewsClient为项目,其余的是引用的第三方工具),有问题请提出来,共同学习进步。



    为了实现上面的效果,实现图片的自动滚动效果以及实现左侧侧滑事件,实现滑动及点动切换界面效果,导入第三方包slidingmenu_library、ImageSlider_library才将其实现;实现上拉加载更多、下拉刷新使用了第三包Android-XListView-library;由于是初学不久后的一个练习项目,在界面的资源的显示是应用的是网易新闻客户端资源。为了实现资源的缓存效果,在断网的情况下也能显示之前加载的内容,引入了Volley_libaray框架。新闻当中的内容是从网上获取,当网上的数据发生改变的时候,新闻中的内容也将相应的进行改变,因此实现了新闻时事同步功能。由于Volley_libaray框架中封装了图片和资源缓存,故在加载了后数据将会被保存,所有在没有网络的情况下也能显示之前加载的数据信息。


    其部分代码如下所示:其实现了侧滑,滑动、点动切换界面

<span style="font-size:18px;">		mSlidingMenuBtn.setOnClickListener(this);
		mAddBtn.setOnClickListener(this);
		mHeadlineTab.setChecked(true);
		setBehindContentView();
		HeadlineFragment fragmen1 = HeadlineFragment.newInstance();
		RecreationFragment fragmen2 = RecreationFragment.newInstance();
		SportsFragment fragmen3 = SportsFragment.newInstance();
		FinanceFragment fragmen4 = FinanceFragment.newInstance();
		ScienceFragment fragmen5 = ScienceFragment.newInstance();
		ArrayList<Fragment> list = new ArrayList<Fragment>();
		list.add(fragmen1);
		list.add(fragmen2);
		list.add(fragmen3);
		list.add(fragmen4);
		list.add(fragmen5);
		MyFragmentAdapter adapter = new MyFragmentAdapter(
				getSupportFragmentManager());
		mViewPager.setAdapter(adapter);
		adapter.setAdapterData(list);
		mRadioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
			@Override
			public void onCheckedChanged(RadioGroup group, int checkedId) {
				switch (checkedId) {
				case R.id.HeadlineTab:
					mViewPager.setCurrentItem(0);
					break;
				case R.id.RecreationTab:
					mViewPager.setCurrentItem(1);
					break;
				case R.id.SportsTab:
					mViewPager.setCurrentItem(2);
					break;
				case R.id.FinanceTab:
					mViewPager.setCurrentItem(3);
					break;
				case R.id.ScienceTab:
					mViewPager.setCurrentItem(4);
					break;
				}
			}
		});
		mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
			@Override
			public void onPageSelected(int arg0) {
				switch (arg0) {
				case 0:
					mHeadlineTab.setChecked(true);
					break;
				case 1:
					mRecreationTab.setChecked(true);
					break;
				case 2:
					mSportsTab.setChecked(true);
					break;
				case 3:
					mFinanceTab.setChecked(true);
					break;
				case 4:
					mScienceTab.setChecked(true);
					break;
				}
			}
			@Override
			public void onPageScrolled(int arg0, float arg1, int arg2) {
			}
			@Override
			public void onPageScrollStateChanged(int arg0) {
			}
		});
	}

	private void setBehindContentView() {
		setBehindContentView(R.layout.slidingmenu_item_layout);
		getSupportFragmentManager()
				.beginTransaction()
				.add(R.id.slidingmenu_item_layout,
						SlidingmenuFragment.newInstance()).commit();

		SlidingMenu sm = getSlidingMenu();
		sm.setSlidingEnabled(true);
		sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
		sm.setShadowWidthRes(R.dimen.shadow_width);
		sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);
		sm.setBehindScrollScale(0);
		sm.setFadeDegree(0.25f);
	}</span>

      通过该练习,熟悉了从网站上面获取解析资源并显示到界面上的使用,同时也对第三方包的使用进行了了解。对于Volley_libaray框架的使用及功能有所掌握,其间封装了网络数据解析、缓存。由于时间的关系,List点击事件及侧滑中的点击事件暂时还没有实现;在和面将不断的对其功能进行完善。

你可能感兴趣的:(Android时事新闻客户端)