1.ViewPage:
实现图片的滑动,
ViewPage:
在布局中添加ViewPager
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/vp1">
</android.support.v4.view.ViewPager>
myData=new ArrayList<>();
将图片放入ArrayList<>中
ImageView img=new ImageView(this);
myDatd.add(img);
加载图片
建立适配器:编写内部类 继承自PagerAdapter
实现内部类的四种方法:
可使用快捷键:右键------Generate -----override
首先要要写构造方法 可使用快捷键
方法1:获得图片数量 getCount
方法2:view是否匹配与object
方法3:instantiateItem 存放图片GrideView
实现图片的滑动
一个简单的例子:
faActivity中的代码:
package com.jerehedu.jreduch04;
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 java.util.ArrayList;
import java.util.List;
import uk.co.senab.photoview.PhotoView;
public class ViewPageActivity extends AppCompatActivity {
private ViewPager vp;
private List<ImageView> myData;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_page);
vp= (ViewPager) findViewById(R.id.vp1);
myData=new ArrayList<>();
PhotoView img=new PhotoView(this);
img.setImageResource(R.mipmap.ic_launcher);
myData.add(img);
img = new PhotoView(this);
img.setImageResource(R.mipmap.p1);
myData.add(img);
img=new PhotoView(this);
img.setImageResource(R.mipmap.p4);
myData.add(img);
vp.setAdapter(new MyViewPagerAdapter(myData));
}
//适配器 ===建立内部类
public class MyViewPagerAdapter extends PagerAdapter{
private List<ImageView> myData;
public MyViewPagerAdapter (List<ImageView>myData){
this.myData=myData;
}
@Override
public int getCount() {
return myData.size();
//获得数量
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(myData.get(position));
return myData.get(position);
//放图片ViewGroup
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(myData.get(position));
}
}
}
程序中所要加载的资源,先放到ArraryList中,然后再从中获取。
此外还自己定义了一个内部类:MyViewPagerAdapter,该类继承自PagerAdapter,并实现了PagerAdpter本身的四个方法。
布局中的代码:
<?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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.jerehedu.jreduch04.ViewPageActivity">
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/vp1"
>
</android.support.v4.view.ViewPager>
</RelativeLayout>
布局中添加了一个ViewPager的布局,以此实现ViewPager的滑动的效果
代码全部写完后,一定不要忘记更改清单文件。
<activity android:name=".ViewPageActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
一切准备就绪后,运行结果如下: