Android开发-自定义View-AndroidStudio(五)ViewPager初体验
来源:互联网 发布:数据库工程师培训机构 编辑:程序博客网 时间:2024/05/16 06:29
转载请注明出处:http://blog.csdn.net/iwanghang/
绝对博文有用,请点赞,请留言,谢谢!~
直接看GIF效果和代码:
MainActivity.java:
activity_main.xml:
转载请注明出处:http://blog.csdn.net/iwanghang/
绝对博文有用,请点赞,请留言,谢谢!~
绝对博文有用,请点赞,请留言,谢谢!~
直接看GIF效果和代码:
MainActivity.java:
package com.iwanghang.viewpager;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.TextView;import java.util.ArrayList;public class MainActivity extends AppCompatActivity { private ViewPager viewpager; private TextView tv_title; private LinearLayout ll_point_group; // 因为大家都了解ListView,先说一下ListView的使用,然后我们对比着,看一下ViewPager的使用 // ListView的使用 // 1、在布局文件中定义ListView // 2、在代码中实例化ListView // 3、准备数据 // 4、设置适配器(BaseAdapter)-item布局-绑定数据 // ArrayList不安全但是效率高 // 这里是用于准备数据,这个就是图片数据的集合 private ArrayList<ImageView> imageViews; // 图片资源ID集合 private final int[] imageIds = {R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d,R.drawable.e}; // 图片标题集合 private final String[] imageDescriptions = {"元旦好","新年好","大家好","哈哈哈","嘻嘻嘻"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewpager = (ViewPager) findViewById(R.id.viewpager); tv_title = (TextView) findViewById(R.id.tv_title); ll_point_group = (LinearLayout) findViewById(R.id.ll_point_group); // ViewPager的使用 // 1、在布局文件中定义ViewPager // 2、在代码中实例化ViewPager // 3、准备数据 // 4、设置适配器(PagerAdapter)-item布局-绑定数据 imageViews = new ArrayList<>(); for (int i = 0; i < imageIds.length;i++) { ImageView imageView = new ImageView(this); // 设置src会按比例填充,但是设置background会拉伸填充 // 我们要的效果是拉伸填充,所以这里使用setBackgroundResource imageView.setBackgroundResource(imageIds[i]); // 添加到集合中 imageViews.add(imageView); } viewpager.setAdapter(new MyPagerAdapter()); } class MyPagerAdapter extends PagerAdapter{ /** * @return 图片的总数 */ @Override public int getCount() { return imageViews.size(); } /** * 相当于getView方法 * @param container ViewPager自身 * @param position 当前实例化页面的位置 * @return */ @Override public Object instantiateItem(ViewGroup container, int position) { ImageView imageView = imageViews.get(position); container.addView(imageView); // 把图片添加到ViewPager容器中 return imageView; } /** * 比较view和object是否是同一个实力 * @param view 页面 * @param object instantiateItem返回的结果 * @return */ @Override public boolean isViewFromObject(View view, Object object) { if (view == object) { return true; }else { return false; } } /** * 释放资源 * @param container viewpager * @param position 要释放的位置 * @param object 要释放的页面 */ @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } }}
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.iwanghang.viewpager.MainActivity"> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="200dp"/> <LinearLayout android:background="#44000000" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_alignBottom="@+id/viewpager" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"> <TextView android:id="@+id/tv_title" android:padding="2dp" android:text="iwanghang" android:textStyle="bold" android:textColor="#ffffff" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" /> </LinearLayout> <LinearLayout android:id="@+id/ll_point_group" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_gravity="center_horizontal"> </LinearLayout></RelativeLayout>
转载请注明出处:http://blog.csdn.net/iwanghang/
欢迎移动开发爱好者交流
沈阳或周边城市公司有意开发Android,请与我联系
联系方式
微信:iwanghang
QQ:413711276
邮箱:iwanghang@qq.com
沈阳或周边城市公司有意开发Android,请与我联系
联系方式
微信:iwanghang
QQ:413711276
邮箱:iwanghang@qq.com
绝对博文有用,请点赞,请留言,谢谢!~
1 0
- Android开发-自定义View-AndroidStudio(五)ViewPager初体验
- Android开发-自定义View-AndroidStudio(六)ViewPager再体验
- Android开发-自定义View-AndroidStudio(八)自定义View初体验
- Android开发-自定义View-AndroidStudio(十)仿ViewPager(1)
- Android开发-自定义View-AndroidStudio(十二)仿ViewPager(2)
- Android开发-自定义View-AndroidStudio(十三)仿ViewPager(3)
- Android开发-自定义View-AndroidStudio(一)
- Android开发-自定义View-AndroidStudio(七)popupwindow
- Android开发-自定义View-AndroidStudio(十九)HackView
- Android开发-自定义View-AndroidStudio(二十七)移动的View
- Android开发-自定义View-AndroidStudio(二十八)缩放的View
- Android开发-自定义View-AndroidStudio(十七)自定义水波纹(1)
- Android开发-自定义View-AndroidStudio(十八)自定义水波纹(2)
- 安卓开发自定义view初体验
- Android开发-自定义View-AndroidStudio(三)扇形多级菜单
- Android开发-自定义View-AndroidStudio(四)简介动画
- Android开发-自定义View-AndroidStudio(九)手势监听类GestureDetector
- Android开发-自定义View-AndroidStudio(十一)有趣的BUG
- 用Qtl编写媒体软件到安卓(待续)
- 数据结构——图 动态规划
- C语言之尾队列tailq
- 第十二课 数据文件与持久性
- 大神教你如何在 Linux 中启用 Shell 脚本的调试模式
- Android开发-自定义View-AndroidStudio(五)ViewPager初体验
- ajax
- C++进程通信之命名管道
- DexExtractor
- Spring初识、IOC应用
- CH6,正则表达式,p112练习三
- 青楼梦-(在这里定一个小目标哈)
- 计算机 超频
- 希尔排序(Shell_Sort)