zhoukao2EX

来源:互联网 发布:淘宝账户被骇客入侵 编辑:程序博客网 时间:2024/06/05 16:01
    compile 'com.squareup.okhttp3:okhttp:3.9.0'    compile 'com.google.code.gson:gson:2.8.1'    compile 'com.github.bumptech.glide:glide:3.8.0'    compile 'com.github.iwgang:countdownview:1.2'    compile 'com.jcodecraeer:xrecyclerview:1.3.2'    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'

values–>attr.xml

   <declare-styleable name="CountDownView">    <!--颜色-->    <attr name="ringColor" format="color" />    <!-- 进度文本的字体大小 -->    <attr name="progressTextSize" format="dimension" />    <!-- 圆环宽度 -->    <attr name="ringWidth" format="float" />    <!--进度文本颜色-->    <attr name="progressTextColor" format="color"/>    <!--倒计时-->    <attr name="countdownTime" format="integer"/></declare-styleable>

布局文件main.xml

<?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"    android:orientation="horizontal"    tools:context="com.exbway.ok_http.MainActivity">    <ImageView        android:id="@+id/myimg"        android:layout_width="200dp"        android:layout_height="100dp"        android:src="@drawable/a7"        android:layout_centerHorizontal="true"        />    <com.exbway.ok_http.CountDownView        android:id="@+id/countDownView"        android:layout_width="100dp"        android:layout_height="100dp" /></RelativeLayout>

second.xml

<?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.exbway.ok_http.SecondActivity">    <com.jcodecraeer.xrecyclerview.XRecyclerView        android:id="@+id/xrcv"        android:layout_width="match_parent"        android:layout_height="match_parent">    </com.jcodecraeer.xrecyclerview.XRecyclerView></RelativeLayout>

item

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="horizontal"    android:gravity="center_vertical"    android:layout_width="match_parent"    android:layout_height="wrap_content">    <LinearLayout        android:orientation="vertical"        android:layout_width="wrap_content"        android:layout_height="wrap_content">        <ImageView            android:layout_width="50dp"            android:layout_height="100dp"            android:id="@+id/item_image1"            android:src="@mipmap/ic_launcher"            />        <ImageView            android:layout_width="50dp"            android:layout_height="100dp"            android:id="@+id/item_image2"            android:src="@mipmap/ic_launcher"            />        <ImageView            android:layout_width="50dp"            android:layout_height="100dp"            android:id="@+id/item_image3"            android:src="@mipmap/ic_launcher"            />    </LinearLayout>    <TextView        android:layout_marginLeft="10dp"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/item_title"        android:textSize="20sp"        android:text="1111"        /></LinearLayout>

item2

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:gravity="center_vertical"    android:layout_width="match_parent"    android:layout_height="wrap_content">    <LinearLayout        android:orientation="horizontal"        android:layout_width="wrap_content"        android:layout_height="wrap_content">        <ImageView            android:layout_width="100dp"            android:layout_height="50dp"            android:id="@+id/item2_image1"            android:src="@mipmap/ic_launcher"            />        <ImageView            android:layout_width="100dp"            android:layout_height="50dp"            android:id="@+id/item2_image2"            android:src="@mipmap/ic_launcher"            />        <ImageView            android:layout_width="100dp"            android:layout_height="50dp"            android:id="@+id/item2_image3"            android:src="@mipmap/ic_launcher"            />    </LinearLayout>    <TextView        android:layout_marginLeft="10dp"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/item2_title"        android:textSize="20sp"        android:text="1111"        /></LinearLayout>

这里写图片描述

package com.exbway.ok_http.apps;import android.app.Application;import com.exbway.ok_http.R;import com.exbway.ok_http.catcherror.CrashHandler;import com.nostra13.universalimageloader.core.DisplayImageOptions;import com.nostra13.universalimageloader.core.ImageLoader;import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;/** * Created by 张政浩 on 2017/10/21. */public class MyApp extends Application {    @Override    public void onCreate() {        super.onCreate();        CrashHandler crashHandler = CrashHandler.getInstance();        crashHandler.init(getApplicationContext());        initImageLoder();    }    /**     * 图片加载     */    private void initImageLoder() {        DisplayImageOptions options = new DisplayImageOptions.Builder()                .cacheOnDisk(true)                .cacheInMemory(true)                .showImageForEmptyUri(R.mipmap.ic_launcher)                .showImageOnFail(R.mipmap.ic_launcher)                .showImageOnLoading(R.mipmap.ic_launcher)                .build();        ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this)                .defaultDisplayImageOptions(options)                .build();        ImageLoader.getInstance().init(configuration);    }}

写Bean,写异常捕获

写MVP

Mpackage com.exbway.ok_http.model;import com.exbway.ok_http.bean.MyBean;import com.exbway.ok_http.net.MyOkhttp;import com.google.gson.Gson;import java.io.IOException;import java.util.List;import okhttp3.Request;/** * Created by 张政浩 on 2017/10/21. */public class DataModel implements IModel{    @Override    public void requestData(String url,int page, final OnRequestListentr onRequestListentr) {        MyOkhttp.getAsync(url+page, new MyOkhttp.DataCallBack() {            @Override            public void requestFailure(Request request, IOException e) {                onRequestListentr.OnErrorRequest(e.getMessage().toString());            }            @Override            public void requestSuccess(String result) throws Exception {                Gson g  = new Gson();                MyBean myBean = g.fromJson(result, MyBean.class);                List<MyBean.DataBean> data = myBean.getData();                onRequestListentr.OnSauccessRequest(data);            }        });    }}
package com.exbway.ok_http.model;/** * Created by 张政浩 on 2017/10/21. */public interface IModel {    void requestData(String url,int page,OnRequestListentr onRequestListentr);}
package com.exbway.ok_http.model;import com.exbway.ok_http.bean.MyBean;import java.util.List;/** * Created by 张政浩 on 2017/10/21. */public interface OnRequestListentr {    void OnSauccessRequest(List<MyBean.DataBean> list);    void OnErrorRequest(String e);}

V

package com.exbway.ok_http.view;import com.exbway.ok_http.bean.MyBean;import java.util.List;/** * Created by 张政浩 on 2017/10/21. */public interface IDataView {    void showlist(List<MyBean.DataBean> list);    void showErrod(String e);}

P

package com.exbway.ok_http.presenter;import com.exbway.ok_http.bean.MyBean;import com.exbway.ok_http.model.DataModel;import com.exbway.ok_http.model.IModel;import com.exbway.ok_http.model.OnRequestListentr;import com.exbway.ok_http.view.IDataView;import java.util.List;/** * Created by 张政浩 on 2017/10/21. */public class DataPresenter implements IPresenter {    IDataView iDataView;    IModel iModel;    public DataPresenter(IDataView iDataView) {        this.iDataView = iDataView;        iModel = new DataModel();    }    @Override    public void loadlist(String url,int page) {        iModel.requestData(url,page ,new OnRequestListentr() {            @Override            public void OnSauccessRequest(List<MyBean.DataBean> list) {                iDataView.showlist(list);            }            @Override            public void OnErrorRequest(String e) {                iDataView.showErrod(e);            }        });    }}
package com.exbway.ok_http.presenter;/** * Created by 张政浩 on 2017/10/21. */public interface IPresenter {    void loadlist(String url,int page);}

MainActivity

package com.exbway.ok_http;import android.animation.AnimatorSet;import android.animation.ObjectAnimator;import android.content.Intent;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;import java.util.Timer;import java.util.TimerTask;public class MainActivity extends AppCompatActivity {    ImageView myimg;    CountDownView cdv;    private Timer mTimer;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tupian();        daojishi();        mTimer = new Timer();        // start timer task        setTimerTask();    }    @Override    protected void onDestroy() {        super.onDestroy();        // cancel timer        mTimer.cancel();    }    private void setTimerTask() {        mTimer.schedule(new TimerTask() {            @Override            public void run() {                Message message = new Message();                message.what = 1;                handler.sendMessage(message);            }        }, 3200);    }    private Handler handler = new Handler() {        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            int msgId = msg.what;            switch (msgId) {                case 1:                    Intent intent = new Intent(MainActivity.this,SecondActivity.class);                    startActivity(intent);                    break;                default:                    break;            }        }    };    private void tupian() {        myimg = (ImageView) findViewById(R.id.myimg);        ObjectAnimator moveIn = ObjectAnimator.ofFloat(myimg, "translationY", 0f, 500f);        ObjectAnimator animator = ObjectAnimator.ofFloat(myimg, "scaleY", 1f, 2f, 1f);        AnimatorSet animSet = new AnimatorSet();        animSet.play(moveIn).before(animator);        animSet.setDuration(1500);        animSet.start();    }    private void daojishi() {        cdv = (CountDownView) findViewById(R.id.countDownView);        cdv.setAddCountDownListener(new CountDownView.OnCountDownFinishListener() {            @Override            public void countDownFinished() {                Toast.makeText(MainActivity.this, "倒计时结束", Toast.LENGTH_SHORT).show();            }        });        cdv.startCountDown();    }}

MyAdapter

package com.exbway.ok_http;import android.content.Context;import android.content.Intent;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import com.exbway.ok_http.bean.MyBean;import com.nostra13.universalimageloader.core.ImageLoader;import java.util.ArrayList;import java.util.List;/** * Created by 张政浩 on 2017/10/21. */public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {    List<MyBean.DataBean> list;    Context context;    public MyAdapter( Context context) {        list = new ArrayList<>();        this.context = context;    }    @Override    public int getItemViewType(int position) {        int itemtype = list.get(position).getItemtype();        if(itemtype==0){            return  0;        }else if(itemtype==1){            return  1;        }        return super.getItemViewType(position);    }    public void AddData(List<MyBean.DataBean> list, int page){        if(page == 1){            this.list.clear();        }        this.list.addAll(list);        notifyDataSetChanged();    }    public interface OnItemClickLitener    {        void onItemClick(View view, int position);        void onItemLongClick(View view , int position);    }    private OnItemClickLitener mOnItemClickLitener;    public void setOnItemClickLitener(OnItemClickLitener mOnItemClickLitener)    {        this.mOnItemClickLitener = mOnItemClickLitener;    }    @Override    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        if(viewType==0){            MyViewHolder myViewHolder = new MyViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item1, parent, false));            return myViewHolder;        }else {            MyViewHolder2 myViewHolder2 = new MyViewHolder2(LayoutInflater.from(parent.getContext()).inflate(R.layout.item2, parent, false));            return myViewHolder2;        }    }    @Override    public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) {        final MyBean.DataBean db = list.get(position);        String images = db.getImages();        String[] split = images.split("\\|");        if(holder instanceof MyViewHolder){            ((MyViewHolder) holder).textView.setText(db.getTitle());            ImageLoader.getInstance().displayImage(split[0],((MyViewHolder) holder).imageView1);            ImageLoader.getInstance().displayImage(split[1],((MyViewHolder) holder).imageView2);            ImageLoader.getInstance().displayImage(split[2],((MyViewHolder) holder).imageView3);        }else if(holder instanceof MyViewHolder2){            ((MyViewHolder2) holder).atextView.setText(db.getTitle());            ImageLoader.getInstance().displayImage(split[0],((MyViewHolder2) holder).aimageView1);            ImageLoader.getInstance().displayImage(split[1],((MyViewHolder2) holder).aimageView2);            ImageLoader.getInstance().displayImage(split[2],((MyViewHolder2) holder).aimageView3);        }        // 如果设置了回调,则设置点击事件        if (mOnItemClickLitener != null)        {            holder.itemView.setOnClickListener(new View.OnClickListener()            {                @Override                public void onClick(View v)                {                    int pos = holder.getLayoutPosition();                    mOnItemClickLitener.onItemClick(holder.itemView, pos);                }            });            holder.itemView.setOnLongClickListener(new View.OnLongClickListener()            {                @Override                public boolean onLongClick(View v)                {                    int pos = holder.getLayoutPosition();                    mOnItemClickLitener.onItemLongClick(holder.itemView, pos);                    return false;                }            });        }        holder.itemView.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                Intent in = new Intent(context,WebActivity.class);                in.putExtra("url",db.getDetailUrl());                context.startActivity(in);            }        });    }    @Override    public int getItemCount() {        return list.size();    }    public class MyViewHolder extends RecyclerView.ViewHolder {        TextView textView;        ImageView imageView1;        ImageView imageView2;        ImageView imageView3;        public MyViewHolder(View itemView) {            super(itemView);            textView =(TextView) itemView.findViewById(R.id.item_title);            imageView1 = (ImageView)itemView.findViewById(R.id.item_image1);            imageView2 = (ImageView)itemView.findViewById(R.id.item_image2);            imageView3 = (ImageView)itemView.findViewById(R.id.item_image3);        }    }    public class MyViewHolder2 extends RecyclerView.ViewHolder {        TextView atextView;        ImageView aimageView1;        ImageView aimageView2;        ImageView aimageView3;        public MyViewHolder2(View itemView) {            super(itemView);            atextView =(TextView) itemView.findViewById(R.id.item2_title);            aimageView1 = (ImageView)itemView.findViewById(R.id.item2_image1);            aimageView2 = (ImageView)itemView.findViewById(R.id.item2_image2);            aimageView3 = (ImageView)itemView.findViewById(R.id.item2_image3);        }    }}

Second

package com.exbway.ok_http;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import android.widget.Toast;import com.exbway.ok_http.bean.MyBean;import com.exbway.ok_http.presenter.DataPresenter;import com.exbway.ok_http.view.IDataView;import com.google.gson.Gson;import com.jcodecraeer.xrecyclerview.XRecyclerView;import java.util.ArrayList;import java.util.List;public class SecondActivity extends AppCompatActivity implements IDataView,XRecyclerView.LoadingListener {    private XRecyclerView mXrcv;    private DataPresenter dataPresenter;    String url ="http://120.27.23.105/product/getProducts?pscid=";    int page = 1;    private MyAdapter myAdapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_second);        initView();        dataPresenter = new DataPresenter(this);        dataPresenter.loadlist(url,page);    }    private void initView() {        mXrcv = (XRecyclerView) findViewById(R.id.xrcv);        LinearLayoutManager layoutManager = new LinearLayoutManager(this);        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);        myAdapter = new MyAdapter(this);        mXrcv.setAdapter(myAdapter);        mXrcv.setLayoutManager(new LinearLayoutManager(this));        mXrcv.setLayoutManager(layoutManager);        mXrcv.setLoadingListener(this);        /*myAdapter.setOnItemClickLitener(new MyAdapter.OnItemClickLitener() {            @Override            public void onItemClick(View view, int position) {            }            @Override            public void onItemLongClick(View view, int position) {                Toast.makeText(SecondActivity.this, "长按", Toast.LENGTH_SHORT).show();            }        });*/    }    @Override    public void showlist(final List<MyBean.DataBean> list) {        myAdapter.AddData(list,page);    }    @Override    public void showErrod(String e) {        Toast.makeText(this, "" + e, Toast.LENGTH_SHORT).show();    }    @Override    public void onRefresh() {        page =1;        dataPresenter.loadlist(url,page);        //刷新完成        mXrcv.refreshComplete();        mXrcv.loadMoreComplete();    }    @Override    public void onLoadMore() {        page ++;        dataPresenter.loadlist(url,page);        //刷新完成        mXrcv.refreshComplete();        mXrcv.loadMoreComplete();    }}

WebView

package com.exbway.ok_http;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.webkit.WebView;import android.webkit.WebViewClient;public class WebActivity extends AppCompatActivity {    private WebView mWb;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_web);        initView();        Intent in = getIntent();        String url = in.getStringExtra("url");        mWb.loadUrl(url);        mWb.setWebViewClient(new WebViewClient(){            @Override            public boolean shouldOverrideUrlLoading(WebView view, String url) {                view.loadUrl(url);                return true;            }        });    }    private void initView() {        mWb = (WebView) findViewById(R.id.wb);    }}
原创粉丝点击