第一图:

        

页面中填充内容是随机关键词飞入和飞出动画效果,随后会更新,如今请先无视吧

---2015-02-27---

两年后最终更新了,网上都能搜到的,哎 无奈太懒http://blog.csdn.net/onlyonecoder/article/details/43965695

-----------

首先是 导入jar包   下载地址:android-support-v4.jar

布局文件中加入viewPager布局

        <android.support.v4.view.ViewPager
android:id="@+id/search_viewpager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" >
</android.support.v4.view.ViewPager>

再创建两个item布局用于填充在ViewPager里



然后就是Activity了,主要写了左右滑动切换页面,另一个小图片随页面切换 位移的动画效果

public class SearchAllcityActivity extends Activity {

	private KeywordsFlow keywordsFlow;
private ViewPager viewPager;
private ImageView imageView;
private List<View> lists = new ArrayList<View>();
private ViewPagerAdapter adapter;
private Bitmap cursor;
private int offSet;
private int currentItem;
private Matrix matrix = new Matrix();
private int bmWidth;
private Animation animation;
private Button shuaxin_sq, shuaxin_fl; public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search_allcity); // 随页面滑动图片
imageView = (ImageView) findViewById(R.id.viewpaget_img);
// 热门商圈和热门分类 页面加入到viewPager集合
lists.add(getLayoutInflater().inflate(R.layout.search_hot_shangqu, null));
lists.add(getLayoutInflater().inflate(R.layout.search_hot_fenlei, null));
// 初始化滑动图片位置
initeCursor();
adapter = new ViewPagerAdapter(lists);
viewPager = (ViewPager) findViewById(R.id.search_viewpager);
viewPager.setAdapter(adapter);
// ViewPager滑动监听器
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
// 当滑动时。顶部的imageView是通过animation缓慢的滑动
switch (arg0) {
case 0:
if (currentItem == 1) {
animation = new TranslateAnimation(offSet * 2 + bmWidth, 0, 0,0);
} else if (currentItem == 2) {
animation = new TranslateAnimation(offSet * 4 + 2 * bmWidth, 0,0, 0);
} break;
case 1:
if (currentItem == 0) {
animation = new TranslateAnimation(0, offSet * 2 + bmWidth, 0,0);
} else if (currentItem == 2) {
animation = new TranslateAnimation(4 * offSet + 2 * bmWidth,offSet * 2 + bmWidth, 0, 0);
} break;
}
currentItem = arg0;
animation.setDuration(500);
animation.setFillAfter(true);
imageView.startAnimation(animation); } @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 }
}); } /**
* 计算滑动的图片的位置
*/
private void initeCursor() {
cursor = BitmapFactory.decodeResource(getResources(),R.drawable.viewpager_img);
bmWidth = cursor.getWidth();
DisplayMetrics dm;
dm = getResources().getDisplayMetrics();
offSet = (dm.widthPixels - 2 * bmWidth) / 4;
matrix.setTranslate(offSet, 0);
imageView.setImageMatrix(matrix); // 须要iamgeView的scaleType为matrix
currentItem = 0;
} }

最后,不能忘了ViewPager的Adapter

public class ViewPagerAdapter extends PagerAdapter{

    List<View> viewLists;

    public ViewPagerAdapter(List<View> lists)
{
viewLists = lists;
} @Override
public int getCount() { //获得size
// TODO Auto-generated method stub
return viewLists.size();
} @Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
} @Override
public void destroyItem(View view, int position, Object object) //销毁Item
{
((ViewPager) view).removeView(viewLists.get(position));
} @Override
public Object instantiateItem(View view, int position) //实例Item
{
((ViewPager) view).addView(viewLists.get(position), 0); return viewLists.get(position);
} }

最新文章

  1. MVC3 数据验证用法之密码验证设计思路
  2. Thread
  3. VS2013-解决error C4996: &#39;fopen&#39;问题
  4. GATK使用说明-GRCh38(Genome Reference Consortium)(二)
  5. Swift 学习笔记 enum 枚举类型
  6. sql server中的左连接与右连接的简便写法
  7. Windows Server基础架构云参考架构:硬件之上的设计
  8. MFC 遍历FTP服务器目录相关
  9. C++学习笔记1(扩充:C++中的格式控制)
  10. 02_Ext_Panel
  11. 【BZOJ4003】【JLOI2015】城池攻占(左偏树)
  12. Centos ATI 显卡安装,“LCD 信号超出范围” 解决方法
  13. Qt实现同步(阻塞式)http get等网络访问操作
  14. nodejs利用sequelize-auto 根据数据库的table 生成model
  15. ES6 class的基本语法-学习笔记
  16. C#基础第四天-作业-Hashtable-list&lt;KeyValuePair&gt;泛型实现名片
  17. ios开发之--跳转到指定的TabBarViewController中的某一个VIewController
  18. [置顶] 深入探析Java线程锁机制
  19. 删除对象的属性 delete的用法
  20. java 中的 hashcode

热门文章

  1. 重新想象 Windows 8 Store Apps (14) - 控件 UI: RenderTransform, Projection, Clip, UseLayoutRounding
  2. String,StringBuffer和StringBuilder的异同
  3. Codeforces Round #256 (Div. 2) A. Rewards
  4. Jenkins详细安装与构建部署使用教程(转)
  5. zookeeper错误KeeperErrorCode = ConnectionLoss解决
  6. 安装Microsoft .NET Framework 3.5 Service Pack 1回报1603错
  7. Node.js Tools for Visual Studio
  8. 【C语言探索之旅】 第二课:工欲善其事,必先利其器
  9. linux下一个Oracle11g RAC建立(五岁以下儿童)
  10. C# WebBrowser.DocumentCompleted 多次调用解决方法