Android-xUtils框架介绍(二)

昨天对xUtils整体上做了一个简单的介绍,今天咱们就代码码起,真刀实枪的也看看,看看如何快速便捷的把xUtils给集成到大家的项目中去。xUtils中有四大组件可以供我们使用,分别是ViewUtils、HttpUtils、BitmapUtils以及DbUtils。如果你没能先读一下我的上一篇文章,那么请你移步过去先整体了解一下,再回过头来看这篇文章,相信你回更有体会的。

下面依次开始介绍这些组件具体的使用。

一、ViewUtils  android中得ioc(控制反转)框架,可以完全使用注解的方式来完成UI的绑定和事件绑定。简单的说,ViewUtils的功能就是做这个的,但是可以说,就这么个功能确是能极大的简化我们的代码。下面我们看下具体的代码,顺便对比下注解的方式绑定ID和findViewById之间的差别。

@ViewInject(R.id.btn)
    private Button btn;

    @ViewInject(R.id.img)
    private ImageView img;

    @ViewInject(R.id.list)
    private ListView list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        ViewUtils.inject(this);}
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        btn = (Button) findViewById(R.id.btn);
        img = (ImageView) findViewById(R.id.img);
        list = (ListView) findViewById(R.id.list);

    }

如果项目中得Activity中的控件相当多,那么想象一下代码中累积的那一大坨就真心受不了。通过xUtils的简单注解,就能轻松摆脱无尽坏味道的代码。

注意:在使用注解绑定控件的时候,一定记得在onCreate中调用ViewUtils.inject(this);

下面我们再对比下Android中事件绑定的区别。

@OnClick({ R.id.btn, R.id.img })
    public void clickMethod(View v) {
        Toast.makeText(SecondActivity.this, "you clicked button!",
                Toast.LENGTH_SHORT).show();
    }

    @OnItemClick(R.id.list)
    public void itemClick(AdapterView<?> parent, View view, int position,long id) {
        Toast.makeText(SecondActivity.this, "position--->" + position,
                Toast.LENGTH_SHORT).show();
    }
btn.setOnClickListener(this);
        list.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                Toast.makeText(SecondActivity.this, "position--->" + position,
                        Toast.LENGTH_SHORT).show();
            }
        });
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.btn:
            Toast.makeText(SecondActivity.this, "you clicked button!",
                    Toast.LENGTH_SHORT).show();
            break;
        default:
            break;
        }
    }

原本绑定Button的监听事件要么用丑陋的内部类,要么Activity实现OnClickListener,在复写的onClick方法中去根据id。而xUtils只要通过简单的一句注解就能实现监听事件的功能,而且可以实现多个控件共用一个监听方法。同时xUtils提供onClick、onItemClick、onLongClick等15种事件监听注解。

注意:在使用注解监听事件的时候,监听方法名是自定义的,但是一定要保证方法的访问修饰符为public,同时方法的参数要与Android原来的监听方法参数一致,不仅参数类型,而且要保证参数的顺序。

二、BitmapUtils  加载网络或本地bitmap的时候无需担心再遇到OOM的现象,管理bitmap的内存采用了LRU算法,同时也能避免列表滑动过程中发生图片错位等得现象。加载网络图片时,还可以配置运行线程的数量,缓存路径等。。。通过BitmapUtils的各种构造器,可以很方便的创建出本地缓存路径和缓存的大小,以及内存缓存的大小。

BitmapUtils utils = new BitmapUtils(this);
        BitmapDisplayConfig config = new BitmapDisplayConfig(this);
        config.setLoadingDrawable(getResources().getDrawable(R.drawable.loading));
        config.setLoadFailedDrawable(getResources().getDrawable(R.drawable.failed));
        config.setImageLoadCallBack(new ImageLoadCallBack() {
            @Override
            public void loadFailed(ImageView imageView, Drawable drawable) {
            }
            @Override
            public void loadCompleted(ImageView imageView, Drawable drawable,
                    BitmapDisplayConfig config) {
            }
        });
        config.setBitmapMaxWidth(480);
        config.setBitmapMaxHeight(720);
//        utils.display(img, "http://img1.gtimg.com/news/pics/hv1/63/26/1451/94357968.jpg");
        utils.display(img, "http://img1.gtimg.com/news/pics/hv1/63/26/1451/94357968.jpg", config);

BitmapUtils在用来加载网络图片时,可以配置加载图片尺寸的大小,加载成功和失败的回调以及加载过程中图片的配置。同时也可以选择不配置。

//bitmapUtils.display(testImageView, "/sdcard/test.jpg"); //支持加载本地图片

// 使用ListView等容器展示图片时可通过PauseOnScrollListener控制滑动和快速滑动过程中时候暂停加载图片
listView.setOnScrollListener(new PauseOnScrollListener(bitmapUtils, false, true));
listView.setOnScrollListener(new PauseOnScrollListener(bitmapUtils, false, true), customListener);

剩下的两个组件:DbUtils和HttpUtils

转自:http://my.oschina.net/jack1900/blog/173526

时间: 2024-11-07 01:19:34

Android-xUtils框架介绍(二)的相关文章

Android Xutils框架使用问题及解决办法

刚刚写了篇博客,提了下在使用XUtils时遇到的一个问题Android Xutils框架HttpUtil Get请求缓存问题 ,既然已经提起来这个问题,那我想了下,就把之前使用Xutils时遇到的几个小问题整理一下. 一. HttpUtil Get请求缓存问题 关于Xtuls框架的Http模块的get请求方法,会有缓存问题--即进行get请求时,在缓存规定的时间内,如果发送同样的请求url,则不会再次请服务器发送请求,而是直接返回上次请求的结果. 之前写了一篇博客已经介绍的很详细了,可查看<An

Android Xutils 框架

Android Xutils 框架 (转) 目录(?)[-] xUtils简介 目前xUtils主要有四大模块 使用xUtils快速开发框架需要有以下权限 混淆时注意事项 DbUtils使用方法 ViewUtils使用方法 HttpUtils使用方法 普通get方法 使用HttpUtils上传文件 或者 提交数据 到服务器post方法 使用HttpUtils下载文件 BitmapUtils 使用方法 其他更多示例代码见sample文件夹中的代码 输出日志 LogUtils xUtils简介 xU

Android Afinal框架学习(二) FinalActivity 一个IOC框架

框架地址:https://github.com/yangfuhai/afinal 对应的源码: net.tsz.afinal.annotation.view.* FinalActivity FinalActivity是一个基础类,结合注解实现了,依赖注入(view的资源id,常用的监听器), 利用set方式注入 完全注解方式就可以进行UI绑定和事件绑定,无需findViewById和set event Listener 这个过程:initInjectedView>findViewById.set

Android 电话系统框架介绍

在android系统中rild运行在AP上,AP上的应用通过rild发送AT指令给BP,BP接收到信息后又通过rild传送给AP.AP与BP之间有两种通信方式: 1.Solicited Response:Ap向Bp发送请求,Bp给Ap发送回复,该类型的AT指令及其回调函数以数组的形式存放在Ril_commands.h文件中: {数组中的索引号,请求回调函数,响应回调函数} [plain] view plaincopy {0, NULL, NULL},                   //no

Android Xutils框架HttpUtil Get请求缓存问题

话说,今天和服务器开发人员小小的逗逼了一下,为啥呢? 话说今天有个"收藏产品"的请求接口,是get request的哦,我客户端写好接口后,点击"收藏按钮",返回"收藏成功",我又点了一下,尼玛居然还是"收藏成功",我再点一下,这下对了,返回给我"取消收藏成功",好吧,我又点了一下,彻底郁闷了,居然又是"取消收藏成功",这不是逗我的么? 于是我让服务器人员检查他的接口,是不是有啥幺蛾子,

打造android ORM框架opendroid(二)——自动创建数据库

在上一篇博客<打造android ORM框架opendroid(一)--ORM框架的使用>中相信你已经了解了opendroid的使用,那么从这篇博客开始,我们正式进入opendroid的源码分析,打造一款自己的ORM框架! 在正式开始之前,你需要保证手里有一份opendroid的源码,如果还没下载opendroid,请到http://git.oschina.net/qibin/OpenDroid 下载opendroid的源码. 任何数据库操作都是从创建数据库开始的,今天我们就来看看opendr

Android系统框架介绍

图中的软件层次自上而下分成4个层次应用程序(Application)用用程序框架(Application Framework)各种类库(Libraries)和android运行时(Adnorid Runtime)操作系统(OS)一.应用程序(Application)        应用层是和用户交互的一个层次,用户可以看得见的一些应用,用户可以操作.这类应用基本都是通过Java语言编写的独立的能够完成某些功能的应用程序. Android本身提供了桌面(Home),联系人(Contacts),拨打

Android xUtils框架(二) ViewUtils

框架地址:https://github.com/wyouflf/xUtils 作用: 完全注解方式就可以进行UI绑定和事件绑定. 无需findViewById和setClickListener等. UI绑定: @ContentView(R.layout.view_acti) //setContentView 注解在activity的声明上方 @ViewInject(R.id.lv_test) //反射view  注解在一个view声明上 @ResInject(id=R.string.app_na

[android]Xutils具体介绍

什么是Xutils xUtils 包括了非常多有用的android工具,xUtils 源于Afinal框架,对Afinal进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持,拥有更加灵活的ORM,很多其它的事件注解支持且不受混淆影响. xUitls最低兼容android 2.2 (api level 8) xUtils下载和引入类库 下载地址:https://github.com/wyouflf/xUtils 解压包并将xUtils-*.jar拷贝到项目的libs下 为

Android:XUtils框架的简单应用

XUtils是目前git上比较活跃 功能比较完善的一个框架,是基于afinal开发的,比afinal稳定性提高了很多. xUtils简介 xUtils 包含了很多实用的android工具. xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响... xUitls最低兼容android 2.2 (api level 8) 目前xUtils主要有四大模块: DbUti