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_info的TextView ,在接下來的代碼中隨意使用:
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");




