画小圆点
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
本地图片
public class MainActivity extends Activity { private ViewPager vp; private GridView gv; private List<View> list = new ArrayList<View>(); private View v1; private View v4; private View v2; private View v3; private RadioGroup rg; private List<Bean> list1; private LinearLayout lin; private ArrayList<ImageView> listima; private Handler hand = new Handler() { public void handleMessage(android.os.Message msg) { int item = vp.getCurrentItem(); // 条目索引+1 item++; vp.setCurrentItem(item); hand.sendEmptyMessageDelayed(0, 2000); }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Init(); } public void Init() { lin = (LinearLayout) findViewById(R.id.la); rg = (RadioGroup) findViewById(R.id.radioGroup1); vp = (ViewPager) findViewById(R.id.vp); gv = (GridView) findViewById(R.id.gridView1); v1 = View.inflate(this, R.layout.v1, null); v2 = View.inflate(this, R.layout.v2, null); v3 = View.inflate(this, R.layout.v3, null); v4 = View.inflate(this, R.layout.v4, null); list.add(v1); list.add(v2); list.add(v3); list.add(v4); vp.setAdapter(new PagerAdapter() { @Override public boolean isViewFromObject(View arg0, Object arg1) { // TODO Auto-generated method stub return arg0 == arg1; } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(list.get(position % list.size())); } @Override public Object instantiateItem(ViewGroup container, int position) { View v = list.get(position % list.size()); v.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { // 按下 case MotionEvent.ACTION_DOWN: // 移除所有的回调和消息 hand.removeCallbacksAndMessages(null); break; // 抬起 case MotionEvent.ACTION_UP: hand.sendEmptyMessageDelayed(0, 2000); break; // 取消的时候,继续 case MotionEvent.ACTION_CANCEL: hand.sendEmptyMessageDelayed(0, 3000); break; default: break; }// TODO Auto-generated method stub return true; } }); container.addView(v); return v; } }); vp.setCurrentItem(list.size() * 100000); // 设置延时切换 发送延时消息 hand.sendEmptyMessageDelayed(0, 2000); vp.setOnPageChangeListener(new OnPageChangeListener() { @Override public void onPageSelected(int arg0) { for (int j = 0; j < listima.size(); j++) { if (j == arg0 % listima.size()) { listima.get(j).setImageResource(R.drawable.ite2); } else { listima.get(j).setImageResource(R.drawable.ite); } } for (int i = 0; i < list.size(); i++) { if (arg0 == i) { RadioButton rb = (RadioButton) rg.getChildAt(i); rb.setChecked(true); } } } @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 } }); /* rg.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { switch (checkedId) { case R.id.radio0: vp.setCurrentItem(0); break; case R.id.radio1: vp.setCurrentItem(1); break; case R.id.radio2: vp.setCurrentItem(2); break; case R.id.radio3: vp.setCurrentItem(3); break; default: break; } } }); */ // 加载小圆点 loadima(); // get(); } public void loadima() { listima = new ArrayList<ImageView>(); for (int i = 0; i < list.size(); i++) { ImageView image = new ImageView(this); if (i == 0) { image.setImageResource(R.drawable.ite2); } else { image.setImageResource(R.drawable.ite); } LayoutParams params = new LayoutParams(15, 15); params.setMargins(5, 0, 5, 0); lin.addView(image, params); listima.add(image); } }
<corners android:radius="8dp"/>
<solid android:color="#fff"/>
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners android:radius="8dp"/>
<solid android:color="#88000000"/>
</shape>
网络图片
View v = View.inflate(context, R.layout.vpitem, null);
ImageView ima = (ImageView) v.findViewById(R.id.vpitemima);
用imageloader加载并 拼接路径
ImageLoader image = ImageLoader.getInstance();
image.displayImage(
"http://172.17.29.120/localuser/loupengfei/kaoshi/gv/"
+ list.get(position%list.size()), ima);
如果是从网上获取图片
public void getvp() { String st2 = "http://172.17.29.120/localuser/loupengfei/kaoshi/gv/ad.json"; Util uti = new Util() { @Override protected void onPostExecute(String result) { Gson gson = new Gson(); List<Beanvp> list = gson.fromJson(result, new TypeToken<List<Beanvp>>() { }.getType()); Log.d(TAG, list.size() + "size"); listima = new ArrayList<String>(); for (Beanvp beanvp : list) { listima.add(beanvp.src); } Log.d(TAG, listima.size() + "ASsize"); Pageradapter pag = new Pageradapter(listima, MainActivity.this); vp.setAdapter(pag); inityuandian(); vp.setCurrentItem(listima.size()*100000); handler.sendEmptyMessageDelayed(0, 2000); super.onPostExecute(result); } }; uti.execute(st2); }
相关推荐
在Android开发中,ViewPager是一种非常常用的组件,它允许用户通过左右滑动来浏览多个页面,常用于实现类似轮播图或者Tab切换的效果。而ViewPager指示器则是与ViewPager配合使用,用以显示当前所选页面的状态,通常...
在Android开发中,ViewPager是一个非常实用的基础组件,它允许用户通过左右滑动在多个界面之间切换,通常用于引导页、图片浏览、页面切换等场景。随着社交媒体应用的流行,如微信朋友圈的图片和视频轮播功能受到了...
在Android开发中,ViewPager是一个非常重要的组件,常用于实现页面滑动切换的效果,例如在应用的引导页、图片轮播或者Tab布局中。本篇将深入讲解如何在ViewPager中实现各种自定义滑动动画,以及如何优化性能并保持...
在Android开发中,ViewPager是一个非常常用的组件,它允许用户通过左右滑动来浏览多个页面,通常用于实现Tab切换或者图片轮播等效果。然而,在实际使用过程中,有时默认的滑动灵敏度可能并不符合我们的需求,例如,...
在Android开发中,ViewPager是一个非常常用的组件,它用于展示多个页面并允许用户通过滑动来切换页面。在本文中,我们将深入探讨ViewPager的切换动画,特别是标题提到的“三种ViewPager切换动画”。首先,我们理解...
标题中的“仿ViewPager”指的是开发者基于Android平台创建的一个自定义视图组件,它模仿了原生ViewPager的功能,但可能在某些方面进行了定制或优化,以满足特定需求。事件分发应用则表明这个组件着重处理触摸事件的...
【标题】"左右滑动ViewPager完整项目实例源码"提供了深入了解和实践Android中ViewPager组件的绝佳机会。ViewPager是Android SDK中的一个强大视图,用于在水平方向上展示多个页面,通常用于实现平滑的页面滑动效果,...
在Android开发中,ViewPager是一个非常常用的组件,它用于展示可以左右滑动的页面序列,常用于实现类似Tab切换或者图片轮播的效果。本教程将详细讲解如何实现ViewPager的无限循环左右滑动效果。 首先,我们需要了解...
在Android应用开发中,`ViewPager`和`Fragment`是两个重要的组件,它们常被结合使用以实现用户界面的滑动切换效果。`ViewPager`提供了一个可以左右滑动查看多个页面的容器,而`Fragment`则作为Activity的部分内容,...
本文将深入探讨如何使用`TabLayout`和`ViewPager`来创建高效的顶部导航。`TabLayout`和`ViewPager`是Android Support Library中的组件,它们提供了强大的功能和灵活性,使得在Android应用中实现滑动页面和标签切换变...
在这个场景中,我们将讨论如何在`DialogFragment`内集成`TabLayout`和`ViewPager`,以实现多页面的左右滑动切换效果,类似于`PopupWindow`的功能。 首先,我们要理解`DialogFragment`的核心概念。`DialogFragment`...
在Android开发中,ViewPager是一个非常重要的组件,常用于展示可滑动的页面集合。标题"viewpager 实现一屏幕多页循环滚动"涉及到的技术点是如何让ViewPager不仅展示多个页面,而且能够实现循环滚动,即当滑动到最后...
本项目“ViewPager+自定义控件实现的日历控件CalenderView”正是这样一个实例,它结合了ViewPager的无限滚动特性和自定义控件的灵活性,为用户提供了一个直观易用的日历视图。 首先,`ViewPager`是Android SDK中的...
在Android开发中,ViewPager是一个非常常用的组件,它用于展示可滑动的页面集合。结合PagerAdapter,我们可以实现一个动态加载和刷新数据的视图系统。在本文中,我们将深入探讨如何利用ViewPager和PagerAdapter来...
在Android开发中,ViewPager是一个非常常用的组件,常用于实现页面滑动效果,比如在应用启动页、图片轮播等场景。本篇文章将详细介绍如何利用ViewPager实现自动循环轮播,并且高度自适应显示前后部分界面,同时添加...
在Android开发中,ViewPager是一种非常常用的组件,它用于展示多个相似的页面,用户可以通过左右滑动来切换页面。在这个特定的场景中,我们讨论的是如何实现一个增强版的ViewPager,即当用户点击或滑动页面时,指示...
在iOS开发中,为了实现类似Android的ViewPager效果,开发者经常需要用到UIPageViewController或者自定义的ScrollView来实现页面滑动切换的功能。这篇内容将详细介绍如何在iOS应用中创建一个简易的ViewPager,以达到...
ViewPager是Android平台上一个非常强大的组件,它允许用户在多个页面之间滑动查看内容,类似于手机中的应用抽屉或照片浏览器。PageTransformer是ViewPager的一个关键特性,它可以让你自定义页面滑动时的动画效果,...
在Android开发中,`ViewPager`是一个非常常用的组件,它用于创建滑动查看多个页面的界面。结合网络图片加载库,如Volley,可以实现动态加载网络图片的效果,从而提升用户体验。下面将详细介绍如何使用`ViewPager`和...
在Android开发中,ViewPager是一个非常常用的组件,它用于展示可滑动的页面,通常与Fragment搭配使用,以实现丰富的交互式界面。在这个场景下,"ViewPager实现循环滚动切换Fragment"是一个常见的需求,尤其是在轮播...