又经过经过两个星期的不懈努力,又完成了一个的练习项目——智慧广州。现在稍稍做一下总结。随便分享一下载连接http://pan.baidu.com/s/1hsbY8Gc,详情请参考android智慧北京项目
有5大功能,首页,新闻中心,智慧服务,政务,设置,由于其他功能类似,其中只实现了首页新闻中心的内容,里面用到的数据均来自服务器tomcat上的数据,通过解析json得到。
(一)splash界面
1,动画效果 AlphaAnimation 渐变动画 RotateAnimation 旋转动画(设置锚点) ScaleAnimation 缩放动画(设置锚点) AnimationSet 动画集
(二)新手向导页GuideActivity和主界面 MainActivity 1)GuideActivity 用ViewPager加载三张图片
mViewPager.setAdapter(new GuideAdapter());// 设置数据
绘制先导页下方的小红点measure->layout(确定位置)->draw(activity的onCreate方法执行结束之后才会走此流程)
监听layout方法结束的事件,位置确定好之后再获取圆点间距2) MainActivity
添加两个Fragment,LeftMenuFragment和ContentFragment
(三)主页面fragment1,NoScrollViewPager 继承ViewPager
重写onTouchEvent方法,对滑动事件的禁用
onInterceptTouchEvent 方法 return false;// 不拦截子控件的事件
mPagers = new ArrayList<BasePager>();
// 添加五个标签页,点击切换ViewPager的内容
mPagers.add(new HomePager(mActivity));mPagers.add(new NewsCenterPager(mActivity));mPagers.add(new SmartServicePager(mActivity));mPagers.add(new GovAffairsPager(mActivity));mPagers.add(new SettingPager(mActivity));
----- 新闻中心 NewsCenterPager
// 请求服务器,获取数据// 开源框架: XUtilsgetDataFromServer();
获取服务器返回结果result
传给PRocessData(result);方法解析数据
// Gson: Google JsonGson gson = new Gson();mNewsData = gson.fromJson(json, NewsMenu.class);System.out.println("解析结果:" + mNewsData);
// 给侧边栏设置数据fragment.setMenuData(mNewsData.data);
-------------菜单详情页-新闻 NewsMenuDetailPager
开源框架ViewPagerIndicator
@ViewInject(R.id.indicator)private TabPageIndicator mIndicator;
mViewPager.setAdapter(new NewsMenuDetailAdapter());mIndicator.setViewPager(mViewPager);
// 将viewpager和指示器绑定在一起.注意:必须在viewpager设置完数据之后再绑定------------------------页签页面对象TabDetailPager
将下拉刷新和头条新闻数据添加到listview的头布局中
mViewPager.setAdapter(new TopNewsAdapter());mIndicator.setViewPager(mViewPager);mIndicator.setSnap(true);// 快照方式展示
private PullToRefreshListView lvList
列表新闻mNewsList = newsTabBean.data.news;if (mNewsList != null) {mNewsAdapter = new NewsAdapter();lvList.setAdapter(mNewsAdapter);} 2,RadioGroup
// 底栏标签切换监听rgGroup.setOnCheckedChangeListener
(四)侧边栏LeftMenuFragment
1, 用一个listview根据json解析出来的数据添加4个item
mAdapter = new LeftMenuAdapter();
lvList.setAdapter(mAdapter);2, // 侧边栏点击之后, 要修改新闻中心的FrameLayout中的内容setCurrentDetailPager(position);
设置当前菜单详情页 MainActivity---->ContentFragment---->NewsCenterPager// 重新给frameLayout添加内容BaseMenuDetailPager pager = mMenuDetailPagers.get(position);// 获取当前应该显示的页面View view = pager.mRootView;// 当前页面的布局// 清除之前旧的布局flContent.removeAllViews();flContent.addView(view);// 给帧布局添加布局(五)新闻详情页面NewsDetailActivity设置字体大小
AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setTitle("字体设置");
// 根据选择的字体来修改网页字体大小WebSettings settings = mWebView.getSettings();
// 正常字体settings.setTextSize(TextSize.NORMAL);
分享
第三方分享平台: ShareSdk
新闻热点
疑难解答