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");