xUtils3自己努力摸索中(一)

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无视就好,因为难没有换项目写,哈哈

来个警句给自己:

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

哈哈!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值