XUtils3框架的初始体验(一)
1、开源地址
https://github.com/wyouflf/xUtils3.git
如果使用eclipse可以 点击这里下载aar文件, 然后用zip解压, 取出jar包和so文件.
2、导入工程
使用Gradle构建时添加一下依赖即可:
compile 'org.xutils:xutils:3.2.2'
使用Eclipse构建时操作步骤如下:
1、下载aar文件并使用然后用zip解压, 取出jar包和so文件.
2、将xutils-3.2.0.jar 以及armeabi添加到工程的libs中即可。
3、简单介绍
XUtils3一共有4大功能:注解模块,网络模块,图片加载模块,数据库模块。
注解模块
Activity的注解
1.在Application的oncreate方法中加入下面代码: x.Ext.init(this);
x.Ext.setDebug(BuildConfig.DEBUG);
2.在Activity的oncreate方法中加入下面代码: x.view().inject(this);
3.加载当前的Activity布局需要如下注解:
@ContentView加入到Activity的上方
4.给View进行初始化需要如下注解:
@InjectView
5.处理控件的各种响应事件需要如下注解:
@Envent
一下是一个简单的Demo 其中加载网络图片需要添加权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
项目目录截图
@ContentView(R.layout.activity_main)
public class MainActivity extends Activity {
private Context context; @ViewInject(R.id.id_but1)
private Button button1; @ViewInject(R.id.id_but2)
private Button button2; @ViewInject(R.id.id_but_loadImg)
private Button id_but_loadImg;
@ViewInject(R.id.id_imgView)
private ImageView imageView;
ImageOptions imageOptions; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//注入view和事件
x.view().inject(this);
context=this; imageOptions = new ImageOptions.Builder()
.setSize(DensityUtil.dip2px(120), DensityUtil.dip2px(120))
.setRadius(DensityUtil.dip2px(5))
// 如果ImageView的大小不是定义为wrap_content, 不要crop.
.setCrop(true)
// 加载中或错误图片的ScaleType
//.setPlaceholderScaleType(ImageView.ScaleType.MATRIX)
.setImageScaleType(ImageView.ScaleType.CENTER_CROP)
//设置加载过程中的图片
.setLoadingDrawableId(R.drawable.ic_launcher)
//设置加载失败后的图片
.setFailureDrawableId(R.drawable.ic_launcher)
//设置使用缓存
.setUseMemCache(true)
//设置支持gif
.setIgnoreGif(false)
//设置显示圆形图片
// .setCircular(false)
.build(); }
@Event(value={R.id.id_but_loadImg})
private void loadImage(View view){
x.image().bind(imageView, "http://img2.3lian.com/2014/f2/164/d/17.jpg", imageOptions);
} @Event(value={R.id.id_but1,R.id.id_but2},type=View.OnClickListener.class)
private void onClick(View view){
//必须为private
switch (view.getId()) {
case R.id.id_but1:
T.showLong(context, "点击了id_but1.....");
LogUtil.e("点击了id_but1.....");
break;
case R.id.id_but2:
T.showLong(context, "点击了id_but2.....");
break; default:
break;
}
}
源码下载地址:http://pan.baidu.com/s/1gdWlhyb
如果对你有帮助可以关注一下订阅号
XUtils3框架的初始体验(一)的更多相关文章
- 分布式_事务_01_2PC框架raincat快速体验1
一.前言 关于2PC的理论知识请见:分布式_理论_03_2PC 这一节我们来看下github上一个优秀的2PC分布式事务开源框架的快速体验. 二.源码 源码请见: https://github.com ...
- 分布式事务_01_2PC框架raincat快速体验
一.前言 关于2PC的理论知识请见:分布式_理论_03_2PC 这一节我们来看下github上一个优秀的2PC分布式事务开源框架的快速体验. 二.源码 源码请见: https://github.com ...
- XUtils===XUtils3框架的基本使用方法
转载自:http://blog.csdn.NET/a1002450926/article/details/50341173 今天给大家带来XUtils3的基本介绍,本文章的案例都是基于XUtils3的 ...
- [转]Python爬虫框架--pyspider初体验
标签: python爬虫pyspider 2015-09-05 10:57 9752人阅读 评论(0) 收藏 举报 分类: Python(8) 版权声明:本文为博主原创文章,未经博主允许不得转载. ...
- 蚂蚁 RPC 框架 SOFA-RPC 初体验
前言 最近蚂蚁金服开源了分布式框架 SOFA,楼主写了一个 demo,体验了一下 SOFA 的功能,SOFA 完全兼容 SpringBoot(当然 Dubbo 也是可以兼容的). 项目地址:Alipa ...
- JEECG前后端分离UI框架实战抢先体验(ng2-admin+Angular4+AdminLTE+WebStorm)
JEECG前后端分离UI框架 (ng2-admin+Angular4+AdminLTE) 关键词: ng2-admin.Angular4.AdminLTE.Nodejs.Jeecg JEECG紧跟技术 ...
- 阿里 RPC 框架 DUBBO 初体验
最近研究了一下阿里开源的分布式RPC框架dubbo,楼主写了一个 demo,体验了一下dubbo的功能. 快速开始 实际上,dubbo的官方文档已经提供了如何使用这个RPC框架example代码,基于 ...
- XUtils3框架的基本用法(一)
本文为作者原创,转载请指明出处: http://blog.csdn.net/a1002450926/article/details/50341173 今天给大家带来XUtils3的基本介绍.本文章的案 ...
- 《java.util.concurrent 包源码阅读》22 Fork/Join框架的初体验
JDK7引入了Fork/Join框架,所谓Fork/Join框架,个人解释:Fork分解任务成独立的子任务,用多线程去执行这些子任务,Join合并子任务的结果.这样就能使用多线程的方式来执行一个任务. ...
随机推荐
- django-BBS(1)
1.首先分析BBS的设计需要,然后设计相应的数据库.填写在models.py 中 2.修改setting.py中的内容: a.将appname加入INSTALLED_APP中 b.修改DATABASE ...
- HDU 3485【101】 51nod 1668【010】 joj 2171【111】动态规划
有一个只含0和1的长度为n的串,问不含有101的所有串的个数. ——不存在连续的101.010.111的字符串数量 HDU:https://cn.vjudge.net/problem/HDU-3485 ...
- 洛谷P2590 [ZJOI2008] 树的统计 [树链剖分]
题目传送门 树的统计 题目描述 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w. 我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t ...
- ExtJs基础
方法和属性 Ext.caeate方法相当于创建一个实例对象 renderTo:Ext.getBody() 新创建的组件渲染到什么位置 grid.render('grid-example'); /re ...
- Word Ladder(LintCode)
Word Ladder Given two words (start and end), and a dictionary, find the length of shortest transform ...
- PMP的六大管理学定律
★墨菲定律PMP考试六大管理学定律之1-PMP专业辅导 1.什么是墨菲定律?最简单的表达形式是“有可能出错的事情,就会出错(Anything that can go wrong will go wro ...
- Minimum Height Trees -- LeetCode
For a undirected graph with tree characteristics, we can choose any node as the root. The result gra ...
- [Codeforces #494] Tutorial
记录下一开始写错的两道水题 E: 先建出直径,然后在保证直径不变的情况下按照最大度数贪心就好了 注意一下一开始的特判 #include <bits/stdc++.h> using name ...
- 插头dp练习
最近学了插头dp,准备陆续更新插头dp类练习. 学习论文还是cdq那篇<基于连通性状态压缩的动态规划问题>. 基本的想法都讲得很通透了,接下来就靠自己yy了. 还有感谢kuangbin大大 ...
- 【线段树】Petrozavodsk Summer Training Camp 2016 Day 6: Warsaw U Contest, XVI Open Cup Onsite, Sunday, August 28, 2016 Problem H. Hay
有一些草,一开始高度都是0,它们的生长速率不同. 给你一些单增的日期,在这些日期要将>b的草的部分都割掉,问你每次割掉的部分有多少. 将草的生长速率从大到小排序,这样每次割掉的是一个后缀,而且不 ...