.Net程式設計師安卓學習之路5:使用xutils注入View和事件以及圖片的顯示

石曼迪發表於2015-03-06

xUtils注入和圖片顯示

一、xUtils注入

引用官方介紹:

ViewUtils模組:
 
•android中的ioc框架,完全註解方式就可以進行UI,資源和事件繫結;
•新的事件繫結方式,使用混淆工具混淆後仍可正常工作;
•目前支援常用的20種事件繫結,參見ViewCommonEventListener類和包com.lidroid.xutils.view.annotation.event

      之前我們寫事件比如Btn的Click事件一般採用硬編碼或者Linstener的方式來實現,從介面某個元素取值或者賦值必須首先使用findcontrol來找到他較為麻煩且難以維護,而這些使用xUtils的註解功能就能很簡潔的完成,比如下例我們實現點選Btn給文字框賦值操作:

wpsA9F6.tmp

點選Btn後:

wpsAA07.tmp

要實現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;

將開始訪問網路圖片的那句程式碼放入按鈕點選事件下,執行即可:

wpsAA08.tmp

2. 本地圖片

在本地assets中放入一個圖片待顯示。

只需一句程式碼(剩下的和上例同):

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

wpsAA18.tmp

相關文章