您的位置:首页 > 移动开发 > Android开发

Android时事新闻客户端

2015-09-06 10:01 204 查看
在学习过程中,对时时新闻客户端项目进行练习,本项目实现了新闻时时更新,其实现效果下面的图片所示:在此项目主要对界面的跳转,界面的衔接,部分功能由于时间有限,侧滑界面上的点击事件还没有实现,点击新闻列表上的信息将会显示新闻的内容,在之后将不断的完善该项目上的功能。此项目主要应用在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点击事件及侧滑中的点击事件暂时还没有实现;在和面将不断的对其功能进行完善。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: