本文實例為大家分享了Android九宮格圖片展示的具體代碼,供大家參考,具體內容如下
網站建設哪家好,找創(chuàng)新互聯(lián)建站!專注于網頁設計、網站建設、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了柳城免費建站歡迎大家使用!
XML布局
主頁面main布局
<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布局
<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頁面
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/你可以通過自己的內存緩存實現(xiàn) .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頁面
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; } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
網站名稱:PullToRefreshListView實現(xiàn)多條目加載上拉刷新和下拉加載
當前網址:http://jinyejixie.com/article28/ggipcp.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供商城網站、品牌網站制作、全網營銷推廣、網站設計、響應式網站、小程序開發(fā)
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)