xUtils3自己努力摸索中(一)

来源:互联网 发布:淘宝汉服睡衣店铺推荐 编辑:程序博客网 时间:2024/05/29 10:42

xUtils3

主要听很多人说xUtils太重了,所以就只是用的时候,我就用用,没有认真去用,现在,就去认真用用,摸索这些框架,我个人比较懒吧,感觉还没出去工作就这么懒,哎,不多说,开始xUtils3的旅行吧…..

一 . >代码中的使用

简单使用注解模块

 @ViewInject(R.id.button)    private Button mButton;    @ViewInject(R.id.imageView)    private ImageView mImageView;

在使用前初始化一下

     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main2);     //初始化      x.Ext.init(getApplication());     //view的注解,就不用findViewById()     x.view().inject(this);

然后是事件
@Event 看源码就知道,里面写了, 方法一定要private,是中文的,哈哈,看着还是很爽的

 @Event(value = {R.id.button}, type = View.OnClickListener.class)    private void onClick(View view) {        switch (view.getId()) {            case R.id.button:                Toast.makeText(Main2Activity.this, "这是这是toast", Toast.LENGTH_SHORT).show();                //这是xUtils封装了的log//                LogUtil.e("错误日志");                break;        }    }

我再加一个button来,进行下载个图片 ,直接可以用,并不需要在xml中写onClick=”loadImage”
这条,哈哈,反射加注解好久没写了,回头写完xUtils的基础使用,我就去,再复习一下注解

   //通过button来点击下载    @Event(value = {R.id.button1})    private void loadImage(View view){        x.image().bind(mImageView,"https://www.baidu.com/img/bd_logo1.png");    }

我们来加载个圆形图吧,这几天看fresco看得似懂非懂的其实就是有些图在fresco中加载不出原图来,不多说,来加载个圆形图来看看吧,哈哈
//主要设置option 用三个参数的,由于连接太长,就没贴上来了,就比上面多加个option属性
这里写图片描述

 mImageOptions = new ImageOptions.Builder().                setSize(DensityUtil.dip2px(120),DensityUtil.dip2px(120))                .setRadius(DensityUtil.dip2px(5)).  //                        setImageScaleType(ImageView.ScaleType.CENTER_CROP)  //显示类型                .setLoadingDrawableId(R.mipmap.ic_launcher)  //加载中的图片                .setFailureDrawableId(R.mipmap.ic_launcher)  //加载失败后的图片                .setUseMemCache(true)  // 是否使用缓存                .setIgnoreGif(false)  //是否支持gif                .setCircular(true)  //加载 圆形图                .build();

这里写图片描述

感觉还不错,等会试试,listview加载试试,看看缓存效果,和前面学的picasso和glide,图片用得爽不

用图片加载的第三个参数的

 x.image().bind(mImageView, "https://www.baidu.com/img/bd_logo1.png", new Callback.CommonCallback<Drawable>() {            /**             * 加载成功的时候回调             *             * @param result 成功时的bitmap             */            @Override            public void onSuccess(Drawable result) {                Log.e("自定义标签", "onSuccess() called with: " + "result = [" + result + "]");                mImageView.setImageDrawable(result);            }            /**             * 加载错误 时回调             * @param ex             * @param isOnCallback             */            @Override            public void onError(Throwable ex, boolean isOnCallback) {                Log.e("自定义标签", "onError() called with: " + "ex = [" + ex + "], isOnCallback = [" + isOnCallback + "]");            }            //取消的回调            @Override            public void onCancelled(CancelledException cex) {                Log.e("自定义标签", "onCancelled() called with: " + "cex = [" + cex + "]");            }            //            @Override            public void onFinished() {                Log.e("自定义标签", "onFinished() called with: " + "");            }        });

这里写图片描述

onCancelled 我没研究过,哈哈,没下过大的文件吧,也不知道什么时候回调,先放着,学习,肯定有些东西不会,有些会,回头再研究一下,去看看官方实例.

接下来显示一下数据在listview中,有时间就仔细看看下载http模块的简单用法,哈哈

RequestParams requestParams = new RequestParams("http://api102.meishi.cc/v5/class_list1.php?lon=&source=android&cid=0&vk=ed6ffbc3acc04a6a2eebce047f17bb15&sort_sc=asc&sort=default&lat=&page=1&bcid=13&format=json");                x.http().get(requestParams, new Callback.CacheCallback<String>() {                    @Override                    public void onSuccess(String result) {                        Log.e("自定义标签", "类名==Main3Activity" + "方法名==onSuccess=====:" + Thread.currentThread().getName());                        Log.e("自定义标签", "onSuccess() called with: " + "result = [" + result + "]");                    }                    @Override                    public void onError(Throwable ex, boolean isOnCallback) {                        Log.e("自定义标签", "onError() called with: " + "ex = [" + ex + "], isOnCallback = [" + isOnCallback + "]");                    }                    @Override                    public void onCancelled(CancelledException cex) {                        Log.e("自定义标签", "onCancelled() called with: " + "cex = [" + cex + "]");                    }                    @Override                    public void onFinished() {                        Log.e("自定义标签", "onFinished() called with: " + "");                    }                    @Override                    public boolean onCache(String result) {//                        Log.e("自定义标签", "onCache() called with: " + "result = [" + result + "]");                        MeiShiBean meiShiBean = new Gson().fromJson(result, MeiShiBean.class);                        List<MeiShiBean.ObjBean.DataBean> classes = meiShiBean.getObj().getData();                        mList.addAll(classes);                        mMyAdapter.notifyDataSetChanged();                        return true;                    }                });

xUtils ,的回调在主线程中,而okHttp回调是在子线程中的
这里写图片描述

图片下载后,上下拖动,都没有替换图片的感觉,哈哈,这缓存可以的,主要的代码就那样吧,下次讲下载,数据库什么的吧,
哈哈,好久没写博客了,这次,一定不放弃每天来一篇,哈哈
以上简单用法的源码
这个地址今天的成果,第一activity无视就好,因为难没有换项目写,哈哈

来个警句给自己:

如果你真的愿意努力,人生最坏的结果,也不过是大器晚成!

哈哈!!!

0 0