GridView+动态小圆点+imageloder
来源:互联网 发布:linux vi强制退出命令 编辑:程序博客网 时间:2024/05/20 18:41
主方法
package com.example.rikao_18;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private ViewPager vp;private LinearLayout ll;private GridView gv;private List<Bean.DataBean.EssayBean> essay;private List<fx> list2;List<ImageView> images;private Handler myHandler=new Handler(){ public void handleMessage(Message msg) { //获取当前正在显示的页面 int index=vp.getCurrentItem(); vp.setCurrentItem(index+1); //改变小圆点 setSelectedPoint((index+1)%list2.size()); //延迟发送消息 sendEmptyMessageDelayed(1,2000); }};@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vp = (ViewPager) findViewById(R.id.vp); ll = (LinearLayout) findViewById(R.id.lin_bottom); gv = (GridView) findViewById(R.id.gv); MyTask myTask=new MyTask(); myTask.execute("http://v3.wufazhuce.com:8000/api/reading/index/?version=3.5.0&platform=android");}class MyTask extends AsyncTask<String,Void,String>{ private String s; private List<Bean.DataBean.EssayBean.AuthorListBean> list; @Override protected String doInBackground(String... strings) { try { URL url=new URL(strings[0]); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.setReadTimeout(5000); urlConnection.setConnectTimeout(5000); if(urlConnection.getResponseCode()==200){ InputStream inputStream=urlConnection.getInputStream(); s = StreamGson(inputStream); } } catch (Exception e) { e.printStackTrace(); } return s; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson=new Gson(); Bean bean = gson.fromJson(s, Bean.class); essay = bean.getData().getEssay(); list2 = new ArrayList<>(); for (int i=0;i<essay.size();i++){ List<Bean.DataBean.EssayBean.AuthorListBean> list = essay.get(i).getAuthor_list(); for (int j=0;j<list.size();j++){ String web_url = list.get(j).getWeb_url(); String desc = list.get(j).getDesc(); list2.add(new fx(web_url,desc)); } } initDoc(); Log.i("zzz",list2.toString()); gv.setAdapter(new Myadapter() ); vp.setAdapter(new Mypageadapter(list2,MainActivity.this)); vp.setCurrentItem(list2.size()*10); //实现自动播放 myHandler.sendEmptyMessageDelayed(1,2000); }}public String StreamGson(InputStream inputStream) { try { InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String s; StringBuilder builder = new StringBuilder(); while ((s = bufferedReader.readLine()) != null) { builder.append(s); } bufferedReader.close(); return builder.toString(); } catch (Exception e) { e.printStackTrace(); } return null;}class Myadapter extends BaseAdapter{ @Override public int getCount() { return list2.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i, View view, ViewGroup viewGroup) { Viewholder vh; if(view==null){ vh=new Viewholder(); view=View.inflate(MainActivity.this,R.layout.itqm,null); vh.img=(ImageView) view.findViewById(R.id.img); vh.tv=(TextView) view.findViewById(R.id.tv); view.setTag(vh); }else{ vh= (Viewholder) view.getTag(); } vh.tv.setText(list2.get(i).getName()); ImageLoader.getInstance().displayImage(list2.get(i%list2.size()).getImg(), vh.img,Mapp.getDefaultDisplayOption()); return view; }}public static class Viewholder{ ImageView img; TextView tv;}public void setSelectedPoint(int index){ for(int i=0;i<images.size();i++){ if(i==index){ images.get(i).setImageResource(R.drawable.xz); }else{ images.get(i).setImageResource(R.drawable.wxz); } }}private void initDoc() { images=new ArrayList<>(); for(int i=0;i<list2.size();i++){ ImageView imgPoint=new ImageView(this); //设置图片的缩放模式 imgPoint.setScaleType(ImageView.ScaleType.FIT_XY); //设置要显示的图片 if(i==0){ //红色的点 imgPoint.setImageResource(R.drawable.xz); }else{ imgPoint.setImageResource(R.drawable.wxz); } //设置宽度与高度 LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(40,40); params.setMargins(10,0,10,0); //添加到底部容器中 ll.addView(imgPoint,params); //添加到集合中 images.add(imgPoint); }}
}
Bean类
package com.example.rikao_18;
import java.util.List;
/**
* author:Created by WangZhiQiang on 2017/10/18.
*/
public class Bean {
private int res;private DataBean data;@Overridepublic String toString() { return "Bean{" + "res=" + res + ", data=" + data + '}';}public Bean(int res, DataBean data) { this.res = res; this.data = data;}public int getRes() { return res;}public void setRes(int res) { this.res = res;}public DataBean getData() { return data;}public void setData(DataBean data) { this.data = data;}public static class DataBean { private List<EssayBean> essay; private List<SerialBean> serial; private List<QuestionBean> question; public List<EssayBean> getEssay() { return essay; } public void setEssay(List<EssayBean> essay) { this.essay = essay; } public List<SerialBean> getSerial() { return serial; } public void setSerial(List<SerialBean> serial) { this.serial = serial; } public List<QuestionBean> getQuestion() { return question; } public void setQuestion(List<QuestionBean> question) { this.question = question; } public static class EssayBean { /** * content_id : 2863 * hp_title : 冬日恶狠狠清单 * hp_makettime : 2017-10-18 06:00:00 * guide_word : 生活里一切都很好,只是我的内心仍有风暴肆虐。 * start_video : * author : [{"user_id":"4813757","user_name":"苏更生","desc":"「一个」App常驻作家,微信公众号:hulizhai","wb_name":"@假苏更生","is_settled":"0","settled_type":"0","summary":"「一个」App常驻作家,微信公众号:hulizhai","fans_total":"16743","web_url":"http://image.wufazhuce.com/Fg_e6teZsb3lZ1QStYtdnAkh6bO8"}] * has_audio : false * author_list : [{"user_id":"4813757","user_name":"苏更生","desc":"「一个」App常驻作家,微信公众号:hulizhai","wb_name":"@假苏更生","is_settled":"0","settled_type":"0","summary":"「一个」App常驻作家,微信公众号:hulizhai","fans_total":"16743","web_url":"http://image.wufazhuce.com/Fg_e6teZsb3lZ1QStYtdnAkh6bO8"}] */ private String content_id; private String hp_title; private String hp_makettime; private String guide_word; private String start_video; private boolean has_audio; private List<AuthorBean> author; private List<AuthorListBean> author_list; @Override public String toString() { return "EssayBean{" + "content_id='" + content_id + '\'' + ", hp_title='" + hp_title + '\'' + ", hp_makettime='" + hp_makettime + '\'' + ", guide_word='" + guide_word + '\'' + ", start_video='" + start_video + '\'' + ", has_audio=" + has_audio + ", author=" + author + ", author_list=" + author_list + '}'; } public EssayBean(String content_id, String hp_title, String hp_makettime, String guide_word, String start_video, boolean has_audio, List<AuthorBean> author, List<AuthorListBean> author_list) { this.content_id = content_id; this.hp_title = hp_title; this.hp_makettime = hp_makettime; this.guide_word = guide_word; this.start_video = start_video; this.has_audio = has_audio; this.author = author; this.author_list = author_list; } public String getContent_id() { return content_id; } public void setContent_id(String content_id) { this.content_id = content_id; } public String getHp_title() { return hp_title; } public void setHp_title(String hp_title) { this.hp_title = hp_title; } public String getHp_makettime() { return hp_makettime; } public void setHp_makettime(String hp_makettime) { this.hp_makettime = hp_makettime; } public String getGuide_word() { return guide_word; } public void setGuide_word(String guide_word) { this.guide_word = guide_word; } public String getStart_video() { return start_video; } public void setStart_video(String start_video) { this.start_video = start_video; } public boolean isHas_audio() { return has_audio; } public void setHas_audio(boolean has_audio) { this.has_audio = has_audio; } public List<AuthorBean> getAuthor() { return author; } public void setAuthor(List<AuthorBean> author) { this.author = author; } public List<AuthorListBean> getAuthor_list() { return author_list; } public void setAuthor_list(List<AuthorListBean> author_list) { this.author_list = author_list; } public static class AuthorBean { /** * user_id : 4813757 * user_name : 苏更生 * desc : 「一个」App常驻作家,微信公众号:hulizhai * wb_name : @假苏更生 * is_settled : 0 * settled_type : 0 * summary : 「一个」App常驻作家,微信公众号:hulizhai * fans_total : 16743 * web_url : http://image.wufazhuce.com/Fg_e6teZsb3lZ1QStYtdnAkh6bO8 */ private String user_id; private String user_name; private String desc; private String wb_name; private String is_settled; private String settled_type; private String summary; private String fans_total; private String web_url; @Override public String toString() { return "AuthorBean{" + "user_id='" + user_id + '\'' + ", user_name='" + user_name + '\'' + ", desc='" + desc + '\'' + ", wb_name='" + wb_name + '\'' + ", is_settled='" + is_settled + '\'' + ", settled_type='" + settled_type + '\'' + ", summary='" + summary + '\'' + ", fans_total='" + fans_total + '\'' + ", web_url='" + web_url + '\'' + '}'; } public AuthorBean(String user_id, String user_name, String desc, String wb_name, String is_settled, String settled_type, String summary, String fans_total, String web_url) { this.user_id = user_id; this.user_name = user_name; this.desc = desc; this.wb_name = wb_name; this.is_settled = is_settled; this.settled_type = settled_type; this.summary = summary; this.fans_total = fans_total; this.web_url = web_url; } public String getUser_id() { return user_id; } public void setUser_id(String user_id) { this.user_id = user_id; } public String getUser_name() { return user_name; } public void setUser_name(String user_name) { this.user_name = user_name; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public String getWb_name() { return wb_name; } public void setWb_name(String wb_name) { this.wb_name = wb_name; } public String getIs_settled() { return is_settled; } public void setIs_settled(String is_settled) { this.is_settled = is_settled; } public String getSettled_type() { return settled_type; } public void setSettled_type(String settled_type) { this.settled_type = settled_type; } public String getSummary() { return summary; } public void setSummary(String summary) { this.summary = summary; } public String getFans_total() { return fans_total; } public void setFans_total(String fans_total) { this.fans_total = fans_total; } public String getWeb_url() { return web_url; } public void setWeb_url(String web_url) { this.web_url = web_url; } } public static class AuthorListBean { /** * user_id : 4813757 * user_name : 苏更生 * desc : 「一个」App常驻作家,微信公众号:hulizhai * wb_name : @假苏更生 * is_settled : 0 * settled_type : 0 * summary : 「一个」App常驻作家,微信公众号:hulizhai * fans_total : 16743 * web_url : http://image.wufazhuce.com/Fg_e6teZsb3lZ1QStYtdnAkh6bO8 */ private String user_id; private String user_name; private String desc; private String wb_name; private String is_settled; private String settled_type; private String summary; private String fans_total; private String web_url; @Override public String toString() { return "AuthorListBean{" + "user_id='" + user_id + '\'' + ", user_name='" + user_name + '\'' + ", desc='" + desc + '\'' + ", wb_name='" + wb_name + '\'' + ", is_settled='" + is_settled + '\'' + ", settled_type='" + settled_type + '\'' + ", summary='" + summary + '\'' + ", fans_total='" + fans_total + '\'' + ", web_url='" + web_url + '\'' + '}'; } public AuthorListBean(String desc) { this.desc = desc; } public String getUser_id() { return user_id; } public void setUser_id(String user_id) { this.user_id = user_id; } public String getUser_name() { return user_name; } public void setUser_name(String user_name) { this.user_name = user_name; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public String getWb_name() { return wb_name; } public void setWb_name(String wb_name) { this.wb_name = wb_name; } public String getIs_settled() { return is_settled; } public void setIs_settled(String is_settled) { this.is_settled = is_settled; } public String getSettled_type() { return settled_type; } public void setSettled_type(String settled_type) { this.settled_type = settled_type; } public String getSummary() { return summary; } public void setSummary(String summary) { this.summary = summary; } public String getFans_total() { return fans_total; } public void setFans_total(String fans_total) { this.fans_total = fans_total; } public String getWeb_url() { return web_url; } public void setWeb_url(String web_url) { this.web_url = web_url; } } } public static class SerialBean { /** * id : 452 * serial_id : 49 * number : 10 * title : 我在三十岁的第一年 II · 第十话 * excerpt : 人生就是一场大型错位。 * read_num : 6200 * maketime : 2017-10-18 06:00:00 * start_video : * author : {"user_id":"4808838","user_name":"毛利","desc":"毛利,专栏作家。《我在三十岁的第一年》即将上市。","wb_name":"@毛利","is_settled":"0","settled_type":"0","summary":"专栏作家。","fans_total":"7937","web_url":"http://image.wufazhuce.com/Fl3AgUQb4i6WocmORrnhMPkcDkV4"} * has_audio : false * author_list : [{"user_id":"4808838","user_name":"毛利","desc":"毛利,专栏作家。《我在三十岁的第一年》即将上市。","wb_name":"@毛利","is_settled":"0","settled_type":"0","summary":"专栏作家。","fans_total":"7938","web_url":"http://image.wufazhuce.com/Fl3AgUQb4i6WocmORrnhMPkcDkV4"}] * serial_list : ["428","429","433","436","440","442","448","449","450","452"] */ private String id; private String serial_id; private String number; private String title; private String excerpt; private String read_num; private String maketime; private String start_video; private AuthorBeanX author; private boolean has_audio; private List<AuthorListBeanX> author_list; private List<String> serial_list; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getSerial_id() { return serial_id; } public void setSerial_id(String serial_id) { this.serial_id = serial_id; } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getExcerpt() { return excerpt; } public void setExcerpt(String excerpt) { this.excerpt = excerpt; } public String getRead_num() { return read_num; } public void setRead_num(String read_num) { this.read_num = read_num; } public String getMaketime() { return maketime; } public void setMaketime(String maketime) { this.maketime = maketime; } public String getStart_video() { return start_video; } public void setStart_video(String start_video) { this.start_video = start_video; } public AuthorBeanX getAuthor() { return author; } public void setAuthor(AuthorBeanX author) { this.author = author; } public boolean isHas_audio() { return has_audio; } public void setHas_audio(boolean has_audio) { this.has_audio = has_audio; } public List<AuthorListBeanX> getAuthor_list() { return author_list; } public void setAuthor_list(List<AuthorListBeanX> author_list) { this.author_list = author_list; } public List<String> getSerial_list() { return serial_list; } public void setSerial_list(List<String> serial_list) { this.serial_list = serial_list; } public static class AuthorBeanX { /** * user_id : 4808838 * user_name : 毛利 * desc : 毛利,专栏作家。《我在三十岁的第一年》即将上市。 * wb_name : @毛利 * is_settled : 0 * settled_type : 0 * summary : 专栏作家。 * fans_total : 7937 * web_url : http://image.wufazhuce.com/Fl3AgUQb4i6WocmORrnhMPkcDkV4 */ private String user_id; private String user_name; private String desc; private String wb_name; private String is_settled; private String settled_type; private String summary; private String fans_total; private String web_url; public String getUser_id() { return user_id; } public void setUser_id(String user_id) { this.user_id = user_id; } public String getUser_name() { return user_name; } public void setUser_name(String user_name) { this.user_name = user_name; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public String getWb_name() { return wb_name; } public void setWb_name(String wb_name) { this.wb_name = wb_name; } public String getIs_settled() { return is_settled; } public void setIs_settled(String is_settled) { this.is_settled = is_settled; } public String getSettled_type() { return settled_type; } public void setSettled_type(String settled_type) { this.settled_type = settled_type; } public String getSummary() { return summary; } public void setSummary(String summary) { this.summary = summary; } public String getFans_total() { return fans_total; } public void setFans_total(String fans_total) { this.fans_total = fans_total; } public String getWeb_url() { return web_url; } public void setWeb_url(String web_url) { this.web_url = web_url; } } public static class AuthorListBeanX { /** * user_id : 4808838 * user_name : 毛利 * desc : 毛利,专栏作家。《我在三十岁的第一年》即将上市。 * wb_name : @毛利 * is_settled : 0 * settled_type : 0 * summary : 专栏作家。 * fans_total : 7938 * web_url : http://image.wufazhuce.com/Fl3AgUQb4i6WocmORrnhMPkcDkV4 */ private String user_id; private String user_name; private String desc; private String wb_name; private String is_settled; private String settled_type; private String summary; private String fans_total; private String web_url; public String getUser_id() { return user_id; } public void setUser_id(String user_id) { this.user_id = user_id; } public String getUser_name() { return user_name; } public void setUser_name(String user_name) { this.user_name = user_name; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public String getWb_name() { return wb_name; } public void setWb_name(String wb_name) { this.wb_name = wb_name; } public String getIs_settled() { return is_settled; } public void setIs_settled(String is_settled) { this.is_settled = is_settled; } public String getSettled_type() { return settled_type; } public void setSettled_type(String settled_type) { this.settled_type = settled_type; } public String getSummary() { return summary; } public void setSummary(String summary) { this.summary = summary; } public String getFans_total() { return fans_total; } public void setFans_total(String fans_total) { this.fans_total = fans_total; } public String getWeb_url() { return web_url; } public void setWeb_url(String web_url) { this.web_url = web_url; } } } public static class QuestionBean { /** * question_id : 1886 * question_title : 受邀参加前任婚礼该怎么办? * answer_title : * answer_content : 当初是你要分开,分开就分开,现在又要用婚礼,来抢我的钱。 * question_makettime : 2017-10-18 06:00:00 * start_video : * author_list : [{"user_id":"0","user_name":"网友","web_url":"http://image.wufazhuce.com/placeholder-author-avatar.png","summary":"","desc":"","is_settled":"","settled_type":"","fans_total":"","wb_name":""}] * asker_list : [{"user_id":"0","user_name":"丰博","web_url":"http://image.wufazhuce.com/placeholder-author-avatar.png","summary":"","desc":"","is_settled":"","settled_type":"","fans_total":"","wb_name":""}] */ private String question_id; private String question_title; private String answer_title; private String answer_content; private String question_makettime; private String start_video; private List<AuthorListBeanXX> author_list; private List<AskerListBean> asker_list; public String getQuestion_id() { return question_id; } public void setQuestion_id(String question_id) { this.question_id = question_id; } public String getQuestion_title() { return question_title; } public void setQuestion_title(String question_title) { this.question_title = question_title; } public String getAnswer_title() { return answer_title; } public void setAnswer_title(String answer_title) { this.answer_title = answer_title; } public String getAnswer_content() { return answer_content; } public void setAnswer_content(String answer_content) { this.answer_content = answer_content; } public String getQuestion_makettime() { return question_makettime; } public void setQuestion_makettime(String question_makettime) { this.question_makettime = question_makettime; } public String getStart_video() { return start_video; } public void setStart_video(String start_video) { this.start_video = start_video; } public List<AuthorListBeanXX> getAuthor_list() { return author_list; } public void setAuthor_list(List<AuthorListBeanXX> author_list) { this.author_list = author_list; } public List<AskerListBean> getAsker_list() { return asker_list; } public void setAsker_list(List<AskerListBean> asker_list) { this.asker_list = asker_list; } public static class AuthorListBeanXX { /** * user_id : 0 * user_name : 网友 * web_url : http://image.wufazhuce.com/placeholder-author-avatar.png * summary : * desc : * is_settled : * settled_type : * fans_total : * wb_name : */ private String user_id; private String user_name; private String web_url; private String summary; private String desc; private String is_settled; private String settled_type; private String fans_total; private String wb_name; public String getUser_id() { return user_id; } public void setUser_id(String user_id) { this.user_id = user_id; } public String getUser_name() { return user_name; } public void setUser_name(String user_name) { this.user_name = user_name; } public String getWeb_url() { return web_url; } public void setWeb_url(String web_url) { this.web_url = web_url; } public String getSummary() { return summary; } public void setSummary(String summary) { this.summary = summary; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public String getIs_settled() { return is_settled; } public void setIs_settled(String is_settled) { this.is_settled = is_settled; } public String getSettled_type() { return settled_type; } public void setSettled_type(String settled_type) { this.settled_type = settled_type; } public String getFans_total() { return fans_total; } public void setFans_total(String fans_total) { this.fans_total = fans_total; } public String getWb_name() { return wb_name; } public void setWb_name(String wb_name) { this.wb_name = wb_name; } } public static class AskerListBean { /** * user_id : 0 * user_name : 丰博 * web_url : http://image.wufazhuce.com/placeholder-author-avatar.png * summary : * desc : * is_settled : * settled_type : * fans_total : * wb_name : */ private String user_id; private String user_name; private String web_url; private String summary; private String desc; private String is_settled; private String settled_type; private String fans_total; private String wb_name; public String getUser_id() { return user_id; } public void setUser_id(String user_id) { this.user_id = user_id; } public String getUser_name() { return user_name; } public void setUser_name(String user_name) { this.user_name = user_name; } public String getWeb_url() { return web_url; } public void setWeb_url(String web_url) { this.web_url = web_url; } public String getSummary() { return summary; } public void setSummary(String summary) { this.summary = summary; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } public String getIs_settled() { return is_settled; } public void setIs_settled(String is_settled) { this.is_settled = is_settled; } public String getSettled_type() { return settled_type; } public void setSettled_type(String settled_type) { this.settled_type = settled_type; } public String getFans_total() { return fans_total; } public void setFans_total(String fans_total) { this.fans_total = fans_total; } public String getWb_name() { return wb_name; } public void setWb_name(String wb_name) { this.wb_name = wb_name; } } }}
}
存放图片和文字
package com.example.rikao_18;
/**
* author:Created by WangZhiQiang on 2017/10/18.
*/
public class fx {
String img;
String name;
@Overridepublic String toString() { return "fx{" + "img='" + img + '\'' + ", name='" + name + '\'' + '}';}public String getImg() { return img;}public void setImg(String img) { this.img = img;}public String getName() { return name;}public void setName(String name) { this.name = name;}public fx(String img, String name) { this.img = img; this.name = name;}
}
GridView适配器
package com.example.rikao_18;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.List;
/**
* author:Created by WangZhiQiang on 2017/10/18.
*/
public class Mypageadapter extends PagerAdapter {
private List list2;
Context context;
public Mypageadapter(List<fx> list2, Context context) { this.list2 = list2; this.context = context;}@Overridepublic int getCount() { return Integer.MAX_VALUE;}@Overridepublic boolean isViewFromObject(View view, Object object) { return view==object;}@Overridepublic Object instantiateItem(ViewGroup container, int position) { ImageView imageView=new ImageView(context); imageView.setScaleType(ImageView.ScaleType.FIT_XY); ImageLoader.getInstance().displayImage(list2.get(position%list2.size()).getImg(),imageView,Mapp.getDefaultDisplayOption()); container.addView(imageView); return imageView;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) { // super.destroyItem(container, position, object); container.removeView((View) object);}
}
imageloder类
package com.example.rikao_18;
import android.app.Application;
import android.os.Environment;
import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import java.io.File;
/**
* author:Created by WangZhiQiang on 2017/10/18.
*/
public class Mapp extends Application {
@Override
public void onCreate() {
super.onCreate();
File cachefile=new File(Environment.getExternalStorageDirectory().getPath()+”/”+”mymypic”);
ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(this).memoryCacheExtraOptions(480, 800)//缓存图片最大的长和宽
.threadPoolSize(2)//线程池的数量
.threadPriority(4)
.memoryCacheSize(2*1024*1024)//设置内存缓存区大小
.diskCache(new UnlimitedDiskCache(cachefile))//自定义缓存目录
.writeDebugLogs()//打印日志内容
.diskCacheSize(20*1024*1024)//设置sd卡缓存区大小
.diskCacheFileNameGenerator(new Md5FileNameGenerator())//给缓存的文件名进行md5加密处理
.build();
ImageLoader.getInstance().init(build);
}public final static DisplayImageOptions getDefaultDisplayOption() { DisplayImageOptions options = new DisplayImageOptions.Builder() .cacheInMemory(true)//进行内存缓存 .cacheOnDisk(true)//进行sd卡缓存 .build();return options; //设置图片质量build(); // 创建配置过得DisplayImageOption对象}}
**小圆点选中的颜色**<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#f00"></solid></shape>
未选中的颜色<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#ccc"></solid></shape>
**布局文件**<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.rikao_18.MainActivity"> <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="200dp" android:id="@+id/vp" android:layout_alignParentTop="true" ></android.support.v4.view.ViewPager> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:id="@+id/lin_bottom" android:layout_alignBottom="@+id/vp" android:gravity="center" android:layout_marginBottom="7dp" ></LinearLayout> <GridView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/gv" android:layout_below="@+id/lin_bottom" android:numColumns="2" ></GridView></RelativeLayout>
**item布局**<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ImageView android:id="@+id/img" android:layout_width="70dp" android:layout_height="70dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" /> <TextView android:id="@+id/tv" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="sdasdsadsad" android:layout_below="@+id/img" /></RelativeLayout>
- GridView+动态小圆点+imageloder
- 动态添加小圆点
- viewpager动态添加小圆点
- ViewPager动态添加小圆点
- viewpager生成动态小圆点
- ViewPager动态添加小圆点
- 图片viewpage动态添加小圆点
- viewpager 动态加载 和小圆点
- js-动态生成小圆点(根据轮播图图片张数动态生成小圆点)
- Gallery + GridView 实现图片与小圆点同步变化
- 小圆点
- 小圆点
- 小圆点
- 小圆点
- ViewPager无限循环+底部小圆点动态滑动
- 动态添加viewpager中的item以及小圆点指示器
- [ViewPager、二]ViewPager 小圆点 动态添加
- Android ViewPager无限循环实现底部小圆点动态滑动
- 机器学习算法与Python实践之(五)k均值聚类(k-means)
- 数据结构实验之链表二:逆序建立链表
- 常见交叉验证方法
- c++四舍五入函数,向上取整,向下取整函数
- 微信小程序开发--微信登录流程
- GridView+动态小圆点+imageloder
- 分布式系统基础-消息队列之JMS
- intellij中svn提示authentication required的解决方法
- 基础练习 杨辉三角形
- C++的变量
- C语言再学习 -- 段错误(核心已转储)
- struts2的工作原理
- android中getLocationInWindow和getLocationOnScreen的区别
- Codeforces875B-Sorting the Coins