首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

仿网易资讯效果源码分析

2012-11-23 
仿网易新闻效果源码分析一直想知道这种效果到底是如何做出来的,直到看到代码,原来还是动画。从网上找了两份

仿网易新闻效果源码分析

  一直想知道这种效果到底是如何做出来的,直到看到代码,原来还是动画。从网上找了两份代码,原理基本相同,两份代码中应该有相互参考部分,现在简单解析下,做一个记录,另外,代码中做了些许不妨碍功能的修改(如果有时间的话,自己也会考虑用fragment实现下)。先看下效果图:

仿网易资讯效果源码分析

这里主要讲解的是以下部分:

仿网易资讯效果源码分析

先看下注释里面的说明:


这一块内容,在原代码中,作者并未做这一块和下面内容的同时更新,个人后来加上。设置头条新闻主题下面就是设置默认选择项:第一项(头条新闻)。

再来看一下里面用到的布局文件:



这个代码在TopicNews中,先看下使用到的全局变量:

// 圆点图片区域mParser = new NewsXmlParser();int length = mParser.getSlideImages().length;mImageCircleViews = new ImageView[length];mImageCircleView = (ViewGroup) mMainView.findViewById(R.id.layout_circle_images);mSlideLayout = new SlideImageLayout(TopicNews.this);mSlideLayout.setCircleImageLayout(length);for(int i = 0; i < length; i++){mImagePageViewList.add(mSlideLayout.getSlideImageLayout(mParser.getSlideImages()[i]));mImageCircleViews[i] = mSlideLayout.getCircleImageLayout(i);mImageCircleView.addView(mSlideLayout.getLinearLayout(mImageCircleViews[i], 10, 10));}
里面主要是调用了NewsXmlParser类和SlideImageLayout的方法,那就先看下NewsXmlParser的getSlideImages方法:


这个功能是如何实现的呢?


@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {switch (checkedId) {case R.id.radio_news:ImageAnimation.SetImageSlide(mImageView, startLeft, 0, 0, 0);startLeft = 0;break;case R.id.radio_topic:ImageAnimation.SetImageSlide(mImageView, startLeft, mImageView.getWidth(), 0, 0);startLeft = mImageView.getWidth();break;case R.id.radio_pic:ImageAnimation.SetImageSlide(mImageView, startLeft, mImageView.getWidth() * 2, 0, 0);startLeft = mImageView.getWidth() * 2;break;case R.id.radio_follow:ImageAnimation.SetImageSlide(mImageView, startLeft, mImageView.getWidth() * 3, 0, 0);startLeft = mImageView.getWidth() * 3;break;case R.id.radio_vote:ImageAnimation.SetImageSlide(mImageView, startLeft, mImageView.getWidth() * 4, 0, 0);startLeft = mImageView.getWidth() * 4;break;default:break;}

最后代码下载地址:

http://download.csdn.net/detail/aomandeshangxiao/4751356


热点排行