XIANMU1

BEAN

MyBase

public class MyBase extends BaseAdapter{
    private Context context;
    private List<UsersBean.DataBean.ArticleListBean>list;
    private String s;
    private final int ONE_TIME = 0;

    public MyBase(Context context, List<UsersBean.DataBean.ArticleListBean> list) {
        this.context = context;
        this.list = list;
    }

    @Override
    public int getViewTypeCount() {
        return 1;
    }

    @Override
    public int getItemViewType(int position) {

        List<String>list_pics=list.get(position).getList_pics();
        for (int i=0;i<list_pics.size();i++){
            s=list_pics.get(i);
        }
        if(s!=null){
            return ONE_TIME;
        }
        else{
            return ONE_TIME;
        }
    }

    @Override
    public int getCount() {
        return list.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) {
        int type = getItemViewType(i);
        if (type == ONE_TIME){
            ViewHolder holder;
            if (view == null){
                view = View.inflate(context, R.layout.mybase,null);
                holder = new ViewHolder();
                holder.textView = view.findViewById(R.id.textView);
                holder.imageView = view.findViewById(R.id.imageView);
                view.setTag(holder);
            }else{
                holder = (ViewHolder) view.getTag();
            }
            holder.textView.setText(list.get(i).getList_title());
            ImageLoader.getInstance().displayImage(s,holder.imageView, HttpApplications.getOptions());

            return view;
        }else{
            return null;
        }
    }

    class ViewHolder{
        TextView textView;
        ImageView imageView;
    }
}

Fragment1

public class Fragment1 extends Fragment{

    private List<UsersBean.DataBean.ArticleListBean> olist = new ArrayList<>();
    private XListView xListView;
    private MyBase myBase;
    private HttpUtils httpUtils1;
    private String path = "http://www.wanandroid.com/tools/mockapi/6523/article_channel_list";
    private int page = 1;

    public static Fragment getinstance(String title){
        Fragment1 fragment1 = new Fragment1();
        Bundle bundle = new Bundle();
        bundle.putString("title",title);
        fragment1.setArguments(bundle);
        return fragment1;
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment1,container,false);
        xListView = view.findViewById(R.id.xlistview);
        olist = new ArrayList<>();
        Bundle arguments = getArguments();
        String title = arguments.getString("title");
        getData1();
        return view;
    }

    public void getData1() {
        xListView.setPullRefreshEnable(true);
        xListView.setPullLoadEnable(true);
        xListView.setXListViewListener(new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {
                page = 1;
                getViews();
            }

            @Override
            public void onLoadMore() {
                page += 1;
                getViews();
            }
        });
        myBase = new MyBase(getActivity(),olist);
        xListView.setAdapter(myBase);
    }
    public void getViews() {
        httpUtils1 = HttpUtils.getInstance();
        httpUtils1.getdata(path);
        httpUtils1.getHttpListener(new HttpUtils.HttpListener() {
            @Override
            public void getdata(String json) {
                Gson gson = new Gson();
                UsersBean usersBean = gson.fromJson(json, UsersBean.class);
                List<UsersBean.DataBean.ArticleListBean> article_list = usersBean.getData().getArticle_list();
                if (page == 1){
                    olist.clear();
                }
                olist.addAll(article_list);
                myBase.notifyDataSetChanged();
                if (page == 1){
                    xListView.stopRefresh();
                }else{
                    xListView.stopLoadMore();
                }
            }
        });
    }
}

Fragment01

public class Fragment01 extends Fragment {

    private HorizontalScrollView hs;
    private ViewPager viewPager;
    List<TextView>list;
    private ArrayList<ChannelBean> channelBeens;
    private LinearLayout linearLayout;
    private Button button;
    private View view;
    private XBanner xBanner;
    private HttpUtils httpUtils;

    private String path = "http://www.wanandroid.com/tools/mockapi/6523/article_channel_list";
    private ArrayList<String> xlist;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
         view=inflater.inflate(R.layout.fragment01,container,false);



        initView();
        initData();
        getinit();
        return view;
    }

    private void initData(){
        list=new ArrayList<>();
        channelBeens=new ArrayList<>();
        channelBeens.add(new ChannelBean("头条",true));
        channelBeens.add(new ChannelBean("读报",true));
        channelBeens.add(new ChannelBean("视频",true));
        channelBeens.add(new ChannelBean("观点",true));
        channelBeens.add(new ChannelBean("时间",true));
        channelBeens.add(new ChannelBean("政情",false));
        channelBeens.add(new ChannelBean("经济",false));
        channelBeens.add(new ChannelBean("人文",false));
        channelBeens.add(new ChannelBean("生态",false));
        channelBeens.add(new ChannelBean("社会",false));

        for(int i=0;i<channelBeens.size();i++){
            TextView textView = new TextView(getActivity());
            textView.setText(channelBeens.get(i).getName()+"");
            textView.setTextSize(20);
            textView.setId(i+1000);

            textView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    int id=view.getId();
                    viewPager.setCurrentItem(id-1000);
                }
            });
            if(i==0){
                textView.setTextColor(Color.RED);
            }else {
                textView.setTextColor(Color.BLACK);
            }
            LinearLayout.LayoutParams layoutParams=new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
            layoutParams.setMargins(20,10,20,10);
            linearLayout.addView(textView,layoutParams);
            list.add(textView);
        }
             viewPager.setAdapter(new Myadapter(getActivity().getSupportFragmentManager()));

        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

                for (int i = 0; i < list.size(); i++) {
                    if(position==i){
                        list.get(i).setTextColor(Color.RED);
                    }else{
                        list.get(i).setTextColor(Color.BLACK);
                    }
                }

                TextView textView = list.get(position);

                int width = textView.getWidth()+10;
                            hs.scrollTo(width*position,0);
            }

            @Override
            public void onPageSelected(int position) {

            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });


        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ChannelActivity.startChannelActivity((AppCompatActivity) getActivity(),channelBeens);
            }
        });

    }

    private void initView() {

        hs = (HorizontalScrollView) view.findViewById(R.id.hs);
        linearLayout = (LinearLayout)view. findViewById(R.id.linear);
        viewPager = (ViewPager) view.findViewById(R.id.pagerr);
        button = (Button) view.findViewById(R.id.button);
        xBanner =(XBanner) view.findViewById(R.id.xbanner);
    }

    class Myadapter extends FragmentPagerAdapter {

        public Myadapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {

            Log.i("TAG",position+"");

            return Fragment1.getinstance(list.get(position).getText().toString());
        }

        @Override
        public int getCount() {
            return list.size();
        }
    }
    public void getinit(){
        httpUtils = HttpUtils.getInstance();
        httpUtils.getdata(path);
        xlist = new ArrayList<>();
        httpUtils.getHttpListener(new HttpUtils.HttpListener() {
            @Override
            public void getdata(String json) {
                Gson gson = new Gson();
                UsersBean usersBean = gson.fromJson(json, UsersBean.class);
                List<UsersBean.DataBean.FocusListBean> focus_list = usersBean.getData().getFocus_list();
                for (int i=0;i<focus_list.size();i++){
                    String image_url = focus_list.get(i).getImage_url();
                    xlist.add(image_url);
                }
                xBanner.setData(xlist,null);
                xBanner.setmAdapter(new XBanner.XBannerAdapter() {
                    @Override
                    public void loadBanner(XBanner banner, View view, int position) {
                        Glide.with(getActivity()).load(xlist.get(position)).into((ImageView)view);
                    }
                });
            }
        });
    }
}

HTTP

HttpApplications

public class HttpApplications extends Application {

    private Context context;

    @Override
    public void onCreate() {
        super.onCreate();
        context=this;
        initImageLouder();
    }

    private void initImageLouder() {
        File cacheDir = StorageUtils.getCacheDirectory(context);  //缂撳瓨鏂囦欢澶硅矾寰?
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
                .memoryCacheExtraOptions(480, 800) // default = device screen dimensions 鍐呭瓨缂撳瓨鏂囦欢鐨勬渶澶ч暱瀹?
                .diskCacheExtraOptions(480, 800, null)  // 鏈湴缂撳瓨鐨勮缁嗕俊鎭?缂撳瓨鐨勬渶澶ч暱瀹?锛屾渶濂戒笉瑕佽缃繖涓?
                .threadPriority(Thread.NORM_PRIORITY - 2) // default 璁剧疆褰撳墠绾跨▼鐨勪紭鍏堢骇
                .tasksProcessingOrder(QueueProcessingType.FIFO) // default
                .denyCacheImageMultipleSizesInMemory()
                .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) //鍙互閫氳繃鑷繁鐨勫唴瀛樼紦瀛樺疄鐜?
                .memoryCacheSize(2 * 1024 * 1024)  // 鍐呭瓨缂撳瓨鐨勬渶澶у€?
                .memoryCacheSizePercentage(13) // default
                .diskCacheSize(50 * 1024 * 1024) // 50 Mb sd鍗?鏈湴)缂撳瓨鐨勬渶澶у€?
                .diskCacheFileCount(100)  // 鍙互缂撳瓨鐨勬枃浠舵暟閲?
                // default涓轰娇鐢℉ASHCODE瀵筓IL杩涜鍔犲瘑鍛藉悕锛?杩樺彲浠ョ敤MD5(new Md5FileNameGenerator())鍔犲瘑
                .diskCacheFileNameGenerator(new Md5FileNameGenerator())
                .writeDebugLogs() // 鎵撳嵃debug log
                .build(); //寮€濮嬫瀯寤?
        ImageLoader.getInstance().init(config);
    }
    public static DisplayImageOptions getOptions(){
        DisplayImageOptions options = new DisplayImageOptions.Builder()
                .showImageOnLoading(R.mipmap.ic_launcher) // 璁剧疆鍥剧墖涓嬭浇鏈熼棿鏄剧ず鐨勫浘鐗?
                .showImageForEmptyUri(R.mipmap.ic_launcher) // 璁剧疆鍥剧墖Uri涓虹┖鎴栨槸閿欒鐨勬椂鍊欐樉绀虹殑鍥剧墖
                .showImageOnFail(R.mipmap.ic_launcher) // 璁剧疆鍥剧墖鍔犺浇鎴栬В鐮佽繃绋嬩腑鍙戠敓閿欒鏄剧ず鐨勫浘鐗?
                .resetViewBeforeLoading(false)  // default 璁剧疆鍥剧墖鍦ㄥ姞杞藉墠鏄惁閲嶇疆銆佸浣?
                .delayBeforeLoading(1000)  // 涓嬭浇鍓嶇殑寤惰繜鏃堕棿
                .cacheInMemory(true) // default  璁剧疆涓嬭浇鐨勫浘鐗囨槸鍚︾紦瀛樺湪鍐呭瓨涓?
                .cacheOnDisk(true) // default  璁剧疆涓嬭浇鐨勫浘鐗囨槸鍚︾紦瀛樺湪SD鍗′腑
                .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) // default 璁剧疆鍥剧墖浠ュ浣曠殑缂栫爜鏂瑰紡鏄剧ず
                .bitmapConfig(Bitmap.Config.ARGB_8888) // default 璁剧疆鍥剧墖鐨勮В鐮佺被鍨?
                //.displayer(new RoundedBitmapDisplayer(300)) // default  杩樺彲浠ヨ缃渾瑙掑浘鐗噉ew RoundedBitmapDisplayer(20)
                .handler(new Handler()) // default
                .build();
        return options;
    }
}

HttpUtils

public class HttpUtils {
    private static HttpUtils httpUtils;
    private HttpListener httpListener;

    public static HttpUtils getInstance(){
        if(httpUtils==null){
            httpUtils = new HttpUtils();
        }
        return httpUtils;
    }
    public void getdata(String url){
        MyAsyncTask myAsyncTask = new MyAsyncTask();
        myAsyncTask.execute(url);
    }

    class MyAsyncTask extends AsyncTask<String,Void,String>{
        @Override
        protected String doInBackground(String... strings) {
            String json="";
            try {
                URL url = new URL(strings[0]);

                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setRequestMethod("GET");
                if(connection.getResponseCode()==200){
                    InputStream inputStream = connection.getInputStream();
                    json=StreamToString(inputStream);
                }

            } catch (Exception e) {
                e.printStackTrace();
            }

            return json;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            httpListener.getdata(s);
        }
    }

    private String StreamToString(InputStream inputStream) {
        InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
        BufferedReader reader = new BufferedReader(inputStreamReader);
        String s = null;
        StringBuilder builder = new StringBuilder();
        try {
            while ((s = reader.readLine())!=null){
                builder.append(s);
            }
            reader.close();
        }catch (Exception e){
            e.printStackTrace();
        }
        return builder.toString();
    }

    public interface HttpListener{
        void getdata(String json);
    }
    public void getHttpListener(HttpListener httpListener){
        this.httpListener = httpListener;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值