ViewPager 和 GridView
来源:互联网 发布:微信小程序分销源码 编辑:程序博客网 时间:2024/06/07 01:16
1.布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.day_1019_lianxi.MainActivity"> <android.support.v4.view.ViewPager android:id="@+id/vp" android:layout_width="match_parent" android:layout_height="300dp"></android.support.v4.view.ViewPager> <LinearLayout android:id="@+id/lin" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_alignBottom="@+id/vp" android:layout_marginBottom="20dp" android:layout_centerHorizontal="true" ></LinearLayout> <GridView android:layout_below="@+id/vp" android:id="@+id/grid" android:numColumns="2" android:layout_width="match_parent" android:layout_height="match_parent"></GridView></RelativeLayout>
2.Mainactivity:
public class MainActivity extends AppCompatActivity { private GridView gridView; private ViewPager vp; private LinearLayout lin; private List<ImageView> imgs; Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { if (msg.what==0){ vp.setCurrentItem(vp.getCurrentItem()+1); handler.sendEmptyMessageDelayed(0,3000); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gridView = (GridView) findViewById(R.id.grid); lin = (LinearLayout) findViewById(R.id.lin); vp = (ViewPager) findViewById(R.id.vp); String path ="http://v3.wufazhuce.com:8000/api/reading/index/?version=3.5.0&platform=android"; getdata.getdatafromnet(MainActivity.this, path, new Callback() { @Override public void getsjson(String json) { Gson gson = new Gson(); Bean bean = gson.fromJson(json, Bean.class); List<Bean.DataBean.EssayBean> ls = bean.getData().getEssay(); gridView.setAdapter(new Gridadapter(MainActivity.this,ls)); vp.setAdapter(new ViewPageradapter(MainActivity.this,ls,handler)); vp.setOffscreenPageLimit(ls.size()); vp.setCurrentItem(ls.size()*1000); handler.sendEmptyMessageDelayed(0,3000); indic(ls); vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for (int i=0;i<imgs.size();i++){ if (i==position%imgs.size()){ imgs.get(i).setImageResource(R.drawable.sha1); }else{ imgs.get(i).setImageResource(R.drawable.sha2); } } } @Override public void onPageScrollStateChanged(int state) { } }); } }); } private void indic(List<Bean.DataBean.EssayBean> ls) { imgs = new ArrayList<>(); for (int i=0;i<ls.size();i++){ ImageView imageView = new ImageView(MainActivity.this); if (i==0){ imageView.setImageResource(R.drawable.sha1); }else{ imageView.setImageResource(R.drawable.sha2); } imgs.add(imageView); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT); params.setMargins(5,0,5,0); lin.addView(imageView,params); } }}3.ViewPagerAdapter:
public class ViewPageradapter extends PagerAdapter { Context tcx; List<Bean.DataBean.EssayBean> ls; Handler handler; public ViewPageradapter(Context tcx,List<Bean.DataBean.EssayBean> ls,Handler handler) { this.tcx = tcx; this.ls = ls; this.handler=handler; } @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView imageView = new ImageView(tcx); imageView.setScaleType(ImageView.ScaleType.FIT_XY); ImageLoader.getInstance().displayImage(ls.get(position % ls.size()).getAuthor().get(0).getWeb_url(), imageView, Imageloaderutil.getDefultOption()); imageView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { int action = event.getAction(); switch (action){ case MotionEvent.ACTION_DOWN: handler.removeCallbacksAndMessages(null); break; case MotionEvent.ACTION_MOVE: handler.removeCallbacksAndMessages(null); break; case MotionEvent.ACTION_CANCEL: handler.removeCallbacksAndMessages(null); break; case MotionEvent.ACTION_UP: handler.sendEmptyMessageDelayed(0,3000); break; } return true; } }); container.addView(imageView); return imageView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); }}4.GridViewAdapter:
public class Gridadapter extends BaseAdapter { Context tcx; List<Bean.DataBean.EssayBean> ls; public Gridadapter(Context tcx, List<Bean.DataBean.EssayBean> ls) { this.tcx = tcx; this.ls = ls; } @Override public int getCount() { return ls.size(); } @Override public Object getItem(int position) { return ls.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolders vh; if (convertView==null){ vh = new ViewHolders(); convertView= View.inflate(tcx, R.layout.grid,null); vh.img= (ImageView) convertView.findViewById(R.id.img); vh.txt= (TextView) convertView.findViewById(R.id.txt); convertView.setTag(vh); }else{ vh = (ViewHolders) convertView.getTag(); } vh.txt.setText(ls.get(position).getAuthor().get(0).getDesc()); ImageLoader.getInstance().displayImage(ls.get(position).getAuthor().get(0).getWeb_url(),vh.img, Imageloaderutil.getDefultOption()); return convertView; } class ViewHolders{ ImageView img; TextView txt; }}
阅读全文
0 0
- Viewpager和GridView
- ViewPager 和 GridView
- scrollview嵌套viewpager(包含gridview和listvie)
- ViewPager 和 GridView 结合实现左右滑动
- viewpager+gridview
- ViewPager+GridView
- ViewPager + GridView实现GridView分页
- ViewPager左右滑动控件和GridView九宫格
- ViewPager和GridView实现左右滑动功能及点击事件
- viewpager和gridview,imageloder,解析json数组,点击不动
- ViewPager+GridView显示popupwindow
- GridView ScrollView ViewPager
- ViewPager+gridView仿美团导航
- Viewpager + GridView 嵌套使用
- viewpager+gridView实现分页
- 跳转+gridview+viewpager
- 使用ViewPager和GridView配合,实现GridView横向水平滑动的效果。
- viewpager+gridview gridview中的个数不确定
- Boolan C++ 设计模式 第三周
- jmeter 定时任务
- freamset帧框架使用
- ASP.NET敷衍作业
- 在 Win10 系统下安装 JDK 及配置环境变量的方法
- ViewPager 和 GridView
- C++PRIMER第十章课后练习
- 正则表达式
- Java多线程学习(吐血超详细总结)
- linux x86-64进程运行空间分析
- thinkPHP分页实例及详解
- 将MyEclipse项目导入eclipse中
- 【运动小记】2017.10~2018.10
- golang有用的库及工具 之 字符串转换 获取32位 uint32位hash 方法 MurmurHash哈希