public class Fragment03
extends Fragment {
private PullToRefreshGridView
pgv; private int pager=
10; private int pagertype=
1; private MyAdapter1
myAdapter; private List<ReaData1.NewslistBean>
datas; private String
path=
"http://api.tianapi.com/social/?key=b6605dd3366f74ff0b56c518bcf9791e&num="+
pager; @Nullable @Override public View
onCreateView(LayoutInflater inflater
, @Nullable ViewGroup container
, @Nullable Bundle savedInstanceState) { View view=inflater.inflate( R.layout.
f3,container
,false )
; pgv = view.findViewById( R.id.
gv )
; datas=
new ArrayList<>( )
; initplv()
; initData()
; return view
; }
private void initplv() {
pgv.setMode( PullToRefreshBase.Mode.
BOTH )
; pgv.setOnRefreshListener(
new PullToRefreshBase.OnRefreshListener2<GridView>() {
@Override public void onPullDownToRefresh(PullToRefreshBase<GridView> pullToRefreshBase) {
pagertype=
1; pager=
1; path=
"http://api.tianapi.com/social/?key=b6605dd3366f74ff0b56c518bcf9791e&num="+
pager; initData()
; }
@Override public void onPullUpToRefresh(PullToRefreshBase<GridView> pullToRefreshBase) {
pagertype=
2; pager+=
20; path=
"http://api.tianapi.com/social/?key=b6605dd3366f74ff0b56c518bcf9791e&num="+
pager; initData()
; } } )
; }
private void initData() { MyTask task =
new MyTask(
new MyTask.ICallBacks() {
@Override public void getJsonData(String jsonstr) { Gson gson =
new Gson()
; ReaData1 reaData1 = gson.fromJson( jsonstr
, ReaData1.
class )
; List<ReaData1.NewslistBean> newslist = reaData1.getNewslist()
; if (
pagertype==
1){
datas.clear()
; }
datas.addAll( newslist)
; setAdapter()
; pgv.onRefreshComplete()
; } } )
; task.execute(
path )
; }
private void setAdapter() {
if (
myAdapter==
null){
myAdapter =
new MyAdapter1(
datas, getActivity() )
; pgv.setAdapter(
myAdapter )
; }
myAdapter.notifyDataSetChanged()
; } }
public class MyAdapter1
extends BaseAdapter { List<ReaData1.NewslistBean>
list; Context
context; private final DisplayImageOptions
options; public MyAdapter1(List<ReaData1.NewslistBean> list
, Context context) {
this.
list = list
; this.
context = context
; options =
new DisplayImageOptions.Builder().cacheInMemory(
true )
//使用内存缓存 .cacheOnDisk(
true )
//使用磁盘缓存 .bitmapConfig( Bitmap.Config.
RGB_565 )
//设置图片色彩模式 .imageScaleType( ImageScaleType.
EXACTLY )
//设置图片的缩放模式 // .displayer(new RoundedBitmapDisplayer(50))//设置圆角 .build()
; }
@Override public int getCount() {
return list.size()
; }
@Override public Object
getItem(
int position) {
return list.get( position )
; }
@Override public long getItemId(
int position) {
return position
; }
@Override public View
getView(
int position
, View convertView
, ViewGroup parent) { MyHolder holder
; if (convertView==
null){ convertView=View.
inflate(
context, R.layout.
itemimg,null )
; holder=
new MyHolder()
; holder.
imageView=convertView.findViewById( R.id.
img )
; convertView.setTag( holder )
; }
else { holder= (MyHolder) convertView.getTag()
; } ImageLoader.
getInstance().displayImage(
list.get( position ).getPicUrl()
,holder.
imageView,options )
; return convertView
; }
class MyHolder{ ImageView
imageView; } }
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:background="#f00" android:layout_height="match_parent"> <com.handmark.pulltorefresh.library.PullToRefreshGridView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/gv" android:numColumns="2" ></com.handmark.pulltorefresh.library.PullToRefreshGridView> </android.support.constraint.ConstraintLayout>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="150dp"
android:layout_height="100dp"
android:layout_marginLeft="30dp"
android:layout_marginTop="15dp"
android:id="@+id/img"/>
</RelativeLayout>