標籤:
原文:.Net程式員安卓學習之路5:使用xutils注入View和事件以及圖片的顯示
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){
// 方法簽名必須和介面中的要求一致 ....}
而前台並不需要定義它的事件:
<Buttonandroid: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");
思路是先在介面聲明圖片控制項:
<ImageViewandroid: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和事件以及圖片的顯示