本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下
XML布局
主页面main布局
1
2
3
4
5
6
|
< com.handmark.pulltorefresh.library.PullToRefreshListView android:layout_width = "match_parent" android:layout_height = "match_parent" android:id = "@+id/pull" > </ com.handmark.pulltorefresh.library.PullToRefreshListView > |
pulllist布局
1
2
3
4
5
6
7
8
9
10
|
< ImageView android:layout_width = "120dp" android:layout_height = "100dp" android:id = "@+id/iv" /> < TextView android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:id = "@+id/tv" /> |
java代码
App页面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package com.example.duanpengpenglx20171108; import android.app.Application; import com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import com.nostra13.universalimageloader.core.assist.QueueProcessingType; import com.nostra13.universalimageloader.core.download.BaseImageDownloader; /** * Created by 朋 on 2017/11/8. */ public class App extends Application { @Override public void onCreate() { super .onCreate(); ImageLoaderConfiguration config = new ImageLoaderConfiguration .Builder( this ) .memoryCacheExtraOptions( 480 , 800 ) .threadPoolSize( 5 ) .threadPriority(Thread.NORM_PRIORITY - 2 ) .denyCacheImageMultipleSizesInMemory() .memoryCache( new UsingFreqLimitedMemoryCache( 2 * 1024 * 1024 )) // You can pass your own memory cache implementation/你可以通过自己的内存缓存实现 .memoryCacheSize( 2 * 1024 * 1024 ) .tasksProcessingOrder(QueueProcessingType.LIFO) .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) .imageDownloader( new BaseImageDownloader( this , 5 * 1000 , 30 * 1000 )) // connectTimeout (5 s), readTimeout (30 s)超时时间 .writeDebugLogs() // Remove for release app .build(); //开始构建 //初始化imageloader; ImageLoader.getInstance().init(config); } } |
MainActivity页面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
public class MainActivity extends AppCompatActivity { List<Jbean.DataBean> arr = new ArrayList(); private View view; private ListView lv; private Adapter adapter; int i = 0 ; private PullToRefreshListView pull; private Adapter adapter1; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); pull = (PullToRefreshListView) findViewById(R.id.pull); pull.setMode(PullToRefreshBase.Mode.BOTH); ListView lv = pull.getRefreshableView(); adapter1 = new Adapter(); lv.setAdapter(adapter1); new MyAsyncTask().execute( "http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0" ); pull.setOnRefreshListener( new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override //上拉 public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { arr.clear(); i = 0 ; new MyAsyncTask().execute( "http://www.93.gov.cn/93app/data.do?channelId=0&startNum=" + i); } @Override //下拉加载20条 public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { i = i + 20 ; new MyAsyncTask().execute( "http://www.93.gov.cn/93app/data.do?channelId=0&startNum=" + i); } }); } class MyAsyncTask extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... params) { String string = "" ; StringBuffer stringBuffer = new StringBuffer(); try { URL url = new URL(params[ 0 ]); URLConnection urlConnection = url.openConnection(); InputStream inputStream = urlConnection.getInputStream(); BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(inputStream)); while ((string = bufferedReader.readLine()) != null ) { stringBuffer.append(string); } } catch (Exception e) { e.printStackTrace(); } return stringBuffer.toString(); } @Override protected void onPostExecute(String s) { super .onPostExecute(s); Jbean fragone_bean = new Gson().fromJson(s, Jbean. class ); List<Jbean.DataBean> data = fragone_bean.getData(); arr.addAll(data); adapter1.notifyDataSetChanged(); pull.onRefreshComplete(); } } class Adapter extends BaseAdapter { @Override public int getCount() { return arr.size(); } @Override public Object getItem( int position) { return arr.get(position); } @Override public long getItemId( int position) { return position; } @Override public View getView( int position, View convertView, ViewGroup parent) { Sj sj = new Sj(); Jbean.DataBean dataBean = arr.get(position); if (convertView== null ){ convertView = View.inflate(MainActivity. this ,R.layout.pulllist, null ); sj.image=convertView.findViewById(R.id.iv); sj.tv=convertView.findViewById(R.id.tv); convertView.setTag(sj); } else { sj =(Sj) convertView.getTag(); } sj.tv.setText(dataBean.getSUBTITLE()); DisplayImageOptions options = new DisplayImageOptions.Builder() .cacheInMemory( true ) .cacheOnDisk( true ) .showImageOnLoading(R.drawable.zhengzaijiazai) .showImageForEmptyUri(R.drawable.zhengzaijiazai) .showImageOnFail(R.drawable.zhengzaijiazai) .bitmapConfig(Bitmap.Config.RGB_565) .build(); ImageLoader.getInstance().displayImage((String) dataBean.getIMAGEURL(),sj.image,options); return convertView; } } class Sj{ ImageView image; TextView tv; } } |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/dp666666/article/details/78481938