1年来关于android开发的一些破烂的经验 1/2

这篇博客分享了一年来作者在Android开发中的经验,重点介绍了常用的git项目,如xUtils、HttpUtils和BitmapUtils。xUtils用于依赖注入,包括组件和响应事件处理;HttpUtils讲解了发送网络请求的参数封装和回调处理;BitmapUtils则涉及网络图片加载到ImageView的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用的一些git的项目

  • xutils
  • pulltorefresh
  • NiftyDialogEffects
  • Gson

目录

xutils

这里是git的链接地址 https://github.com/wyouflf/xUtils
请务必记住要在setContentView(R.layout.main)的下一行写上ViewUtils.inject(this);

依赖注入组件

代码块语法遵循标准markdown代码,例如:

@ViewInject(R.id.textview)
TextView textView

依赖注入响应事件

    @OnClick(R.id.button)
        public void onClick(View view){
            /** 响应事件 **/
        }

        @OnLongClick(R.id.button)
        public boolean onLongClick(View view){
            /** 响应事件 **/
            return false;
        }

        @OnItemClick(R.id.listView)
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l){
            /** 响应事件 **/
            }

        @OnItemLongClick(R.id.listView)
        public void onItemLongClick(AdapterView<?> adapterView, View view, int i, long l){
        /** 响应事件 **/
        }

需要注意到的是,当我个人在使用pulltorefresh的控件中,发现pulltorefreshlistview并不通过viewutils来进行依赖注入,只能通过pulltorefreshlistview.getRefreshableView.setOnItemListener();

httputils

这个作为LZ常用的网络通信工具,也是一直被用到今天。
在使用httputils.send之前,有两个东西我们需要知道和熟悉。
1,用于封装入参的RequestParams
2,处理返回服务器结果RequestCallBack< Object >;

RequestParams

首先是构造方法和规定编码

RequestParams requestParams = new RequestParams();
RequestParams requestParams = new RequestParams("UTF-8");
requsetParams.setContentType("UTF-8");

(在此处要声明一下,LZ所在的公司的服务端是用webservice的框架,所以LZ在这里提到是常用,是默认服务端为webservice,若无法通过LZ的方法进行网络通信,请私信LZ)
接下来就是对参数的封装:

<!-- values的类型必须为String -->
requestParams.addBodyParameter("Parameters", values);

。。。是的,就是上面那样子就可以封装了。。。

RequestCallBack< Object >

首先LZ要说一个毕竟坑的地方,就是在requestCallBack中(假设success)有一个 public void onSuccess(ResponseInfo< String > objectResponseInfo)的方法,但我们必须在这个方法中获得的返回值objectResponseInfo不能持久化,简单点说,就是我们对返回值做出的一系列解析/绑定都必须在onSuccess的方法中实现,这样代码看上去就显得有点臃肿(至今LZ并没有想到什么好方法可以解决,私信求教)

@Override
public void onCancelled() {}

@Override
public void onLoading(long total, long current, boolean isUploading) {
    /** 设置进度条 **/
}

@Override
public void onSuccess(ResponseInfo<String> objectResponseInfo) {
    /** 对返回值objectResponseInfo进行数据操作 **/
}
@Override
public void onFailure(HttpException e, String s) {}

说完了参数封装和返回值的获取,是时候说说httputils的send了
国际惯例,先是构造函数

/* 默认的DEFAULT_CONN_TIMEOUT 为 15000 */
/* HttpUtils自带有gzip */
HttpUtils httpUtils = new HttpUtils();
HttpUtils httpUtils = new HttpUtils(15000);
/* HttpUtils中的send方法 */
public <T> HttpHandler<T> send(HttpMethod method, String url, RequestParams params, RequestCallBack<T> callBack) {}

BitmapUtils

顾名思义,就是用于加载网络图片并显示在imageView的工具类。
注意,这里特指ImageView。(LZ曾经试过使用RoundImageView+BitmapUtils,但并没有成功)
构造函数:

BitmapUtils bitmapUtils = new BitmapUtils(context);
/* CachePath为缓存地址,String型 */
BitmapUtils bitmapUtils = new BitmapUtils(context,CachePath);
/* memoryCacheSize为内存缓存容量,int型,单位为B */
BitmapUtils bitmapUtils = new BitmapUtils(context,CachePath,memoryCacheSize);
/* 这里的ImageView为ImageView的对象 , Url为图片的链接地址,String型 */
bitmapUtils.display(ImageView,Url);
bitmapUtils.display(ImageView,Url,BitmapDisplayConfig);
... /* LZ常用这两种,但还有其他的一些方法,LZ没试过也就没列举出来 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值