xUtils注入和图片显示

一、xUtils注入

引用官方介绍:

ViewUtils模块:

•android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;
•新的事件绑定方式,使用混淆工具混淆后仍可正常工作;
•目前支持常用的20种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。

之前我们写事件比如Btn的Click事件一般采用硬编码或者Linstener的方式来实现,从界面某个元素取值或者赋值必须首先使用findcontrol来找到他较为麻烦且难以维护,而这些使用xUtils的注解功能就能很简洁的完成,比如下例我们实现点击Btn给文本框赋值操作:

点击Btn后:

要实现xUtils注入首先得在onCreate中加入:

ViewUtils.inject(this); //注入view和事件

之后定义控件如下:

@ViewInject(R.id.lbl_info)

private TextView textView;

这样就相当于找到界面ID为lbl_infoTextView ,在接下来的代码中随意使用:

textView.setText("Clicked Btn");

能注入View同样也能注入事件,如我们要实现Btn的点击事件只需如下编码即可:

@OnClick(R.id.btn_test)
public void btn_testClick(View v) {
// 方法签名必须和接口中的要求一致
.... }

而前台并不需要定义它的事件:

<Button
android:id="@+id/btn_test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show Me" />

结合起来就是:

@OnClick(R.id.btn_test)
public void btn_testClick(View v)
{
// 方法签名必须和接口中的要求一致
textView.setText("Clicked Btn"); }

这种方式必须保证控件有ID。

二、使用xUtils完成图片的显示

◦ BitmapUtils模块:

•加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;
•支持加载网络图片和本地图片;
•内存管理使用lru算法,更好的管理bitmap内存;
•可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等...

1.网络图片:

需要增加网络或者SD卡访问权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

拿博客园Logo为例,访问的代码如下:

BitmapUtils bitmapUtils = new BitmapUtils(this);
bitmapUtils.display(imgItem, "http://42.121.254.191/images/logo_small.gif");

思路是先在界面声明图片控件:

<ImageView
android:id="@+id/img_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>

再找到这个控件:

@ViewInject(R.id.img_item)
private ImageView imgItem;

将开始访问网络图片的那句代码放入按钮点击事件下,运行即可:

2. 本地图片

在本地assets中放入一个图片待显示。

只需一句代码(剩下的和上例同):

bitmapUtils.display(imgItem, "assets/qq.jpg");

.Net程序员安卓学习之路5:使用xutils注入View和事件以及图片的显示的更多相关文章

  1. .Net程序员安卓学习之路1:登陆界面

    任何编程学习起步均是HelloWorld,作为稍有>net编程经验的我们来说就跳过这步吧,咱们且从简单登录界面开始.先看看效果: 一.准备知识: 1. 安卓环境:安装好JDK,直接去官网下载AD ...

  2. .Net程序员安卓学习之路4:使用xutils Get Post数据

    前面使用了一些网络上找来的类进行网络访问,后来发现了安卓开发中有一个国人写的类库xutils比较全面,也比较经典,故后续使用xutils类库进行记录. 本例服务端使用WCF来实现,写好的WCF服务端在 ...

  3. .Net程序员安卓学习之路6:等待条

    一般在需要访问网络或者长时间操作的时候避免界面无响应才使用:等待条 本例将实现一个无框架的等待条,效果如下: 点击后,使线程Sleep5秒,就出现如下效果: 实现代码如: private Progre ...

  4. .Net程序员安卓学习之路3:Post数据给网络API

    本例我们实现一次真正的网络交互,将数据POST到API,然后接收服务器的返回值进行处理,同时引入自定义类型和传说中阿里的FastJson. 实现思路如: 1. 在API端接收客户POST的数据还原成对 ...

  5. .Net程序员安卓学习之路2:访问网络API

    做应用型的APP肯定是要和网络交互的,那么本节就来实战一把Android访问网络API,还是使用上节的DEMO: 一.准备API: 一般都采用Json作为数据交换格式,目前各种语言均能输出Json串. ...

  6. zz 游戏程序员的学习之路(中文版)

    游戏程序员的学习之路(中文版) Milo Yip · 1 天前 感谢 @楚天阔(tkchu)编写脚本及整理中文译本数据,自动从英文版生成中文版,SVG / PDF 版本中的书籍图片现在链接至豆瓣页面. ...

  7. GJM : 游戏程序员的学习之路

    原文作者:miloyip  原帖地址:http://gad.qq.com/article/detail/7180681 原帖备注:版权所有,禁止匿名转载:禁止商业使用:禁止个人使用. 腾讯前端技术总监 ...

  8. 五年.net程序员Java学习之路

    大学毕业后笔者进入一家外企,做企业CRM系统开发,那时候开发效率最高的高级程序语言,毫无疑问是C#.恰逢公司也在扩张,招聘了不少.net程序员,笔者作为应届生,也乐呵呵的加入到.net程序员行列中. ...

  9. 2017PHP程序员的进阶之路

    2017PHP程序员的进阶之路 又是一年毕业季,可能会有好多毕业生即将进入开发这个圈子,踏上码农这个不归路.根据这些年在开发圈子总结的LNMP程序猿发展轨迹,结合个人经验体会,总结出很多程序员对未来的 ...

随机推荐

  1. 拓扑排序 POJ 1049 Sorting It All Out

    题目传送门 /* 拓扑排序裸题:有三种情况: 1. 输入时发现与之前的矛盾,Inconsistency 2. 拓扑排序后,没有n个点(先判断cnt,即使一些点没有边连通,也应该是n,此时错误是有环): ...

  2. BZOJ3776 : 警察局

    怎么3776又换题目了…换题目了…题目了…目了…了… SCC缩点后只有入度或者出度为0的点必须要放警察局 假设一共有t-1个入度或者出度为0的SCC q[1]-q[t-1]表示这些SCC中点的个数 q ...

  3. Codeforces Round #199 (Div. 2) A Xenia and Divisors

    注意题目的数字最大是7 而能整除的只有 1,2,3,4,6,故构成的组合只能是1,2,4 或1,2,6或1,3,6,故分别统计1,2,3,4,6的个数,然后再分配 #include <iostr ...

  4. COJ975 WZJ的数据结构(负二十五)

    试题描述 输入一个字符串S,回答Q次问题,给你l,r,输出子序列[l,r]的最长连续回文串长度. 输入 第一行为一个字符串S. 第二行为一个正整数Q. 接下来Q行每行为l,r. 输出 对于每个询问,输 ...

  5. oracle系列--第四篇 Oracle的卸载

    对于oracle的卸载,是一件相对麻烦的事情,不像其他软件那样,我们可以根据卸载向导,就可以方便快捷地卸载软件. oracle的卸载,我们要涉及到修改注册表,重启计算机等操作. 我们有些时候有必要卸载 ...

  6. Linux_自动调整linux系统时间和时区与Internet时间同步

    调整linux系统时间和时区与Internet时间同步 一.修改时区:# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime修改为中国的东八区# v ...

  7. C# params object[] args 可以传多个参数,可以不限制类型(转)

    C# params object[] args 可以传多个参数,可以不限制类型 using System;using System.Collections.Generic;using System.T ...

  8. 在Eclipse中配置Tomcat 创建和运行Servlet/JSP

    在Eclipse中配置Tomcat 创建和运行Servlet/JSP 步骤一:在Eclipse中配置Tomcat(注意下载Eclipse IDE for Java EE Developers) (1) ...

  9. C# - JSON操作

    Newtonsoft.dll插件 http://download.csdn.net/detail/xinping_168/4710720 洪大师二次封装: using System; using Sy ...

  10. jsp七大动作指令

    jsp 七大动作指令 1) jsp:include 指令 用于在请求处理阶段包含来自一个Servlet或jsp页面的响应.和编译指令中的include不同,include只能用于包含静态页面,而jsp ...