使用afinal 中的finalhttp和finalbitmap訪問網絡資源+finalActivity

Afinal簡介
Afinal 是一個android的sqlite orm 和 ioc 框架。同時封裝了android中的http框架,使其更加簡單易用;
使用finalBitmap,無需考慮bitmap在android中加載的時候oom的問題和快速滑動的時候圖片加載位置錯位等問題。
Afinal的宗旨是簡潔,快速。約定大於配置的方式。儘量一行代碼完成所有事情。
目前Afinal主要有四大模塊:
FinalDB模塊:android中的orm框架,一行代碼就可以進行增刪改查。支持一對多,多對一等查詢。
FinalActivity模塊:android中的ioc框架,完全註解方式就可以進行UI綁定和事件綁定。無需findViewById和setClickListener等。
FinalHttp模塊:通過httpclient進行封裝http數據請求,支持ajax方式加載。
FinalBitmap模塊:通過FinalBitmap,imageview加載bitmap的時候無需考慮bitmap加載過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象。FinalBitmap可以配置線程加載線程數量,緩存大小,緩存路徑,加載顯示動畫等。FinalBitmap的內存管理使用lru算法,沒有使用弱引用(android2.3以後google已經不建議使用弱引用,android2.3後強行回收軟引用和弱引用,詳情查看android官方文檔),更好的管理bitmap內存。FinalBitmap可以自定義下載器,用來擴展其他協議顯示網絡圖片,比如ftp等。同時可以自定義bitmap顯示器,在imageview顯示圖片的時候播放動畫等(默認是漸變動畫顯示)。
今天我要寫的是關於finalhttp和finalbitmap,其中finalIActivity是最好應用的 例如

public class MainActivity extends FinalActivity {  
@ViewInject(  
        id = R.id.imageview,   
        click = "myClick",  
        longClick = "myLongClick")  
ImageView imageview;  @ViewInject(  
        id = R.id.listview,   
        click = "myClick",  
        itemLongClick = "myItemLongClick",  
        itemClick = "myItemClick",  
        longClick = "myLongClick",  
        select = @Select(selected="myItemSelected", noSelected="myNoSelected"))  
ListView listView;  

@Override  
protected void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.main);//繼承FinalActivity,setContentView中初始化了  
}  

public void myClick(View v) {  
    System.out.println("--myClick--");  
}  
public void myLongClick(View v) {  
    System.out.println("--myLongClick--");  
}  
public void myItemLongClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {  
    System.out.println("--myItemLongClick--");  
}  
public void myItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {  
    System.out.println("--myItemClick--");  
}  
public void myItemSelected(AdapterView<?> arg0, View arg1, int arg2,long arg3) {  
    System.out.println("--myItemSelected--");  
}  

public void myNoSelected(AdapterView<?> arg0) {  
    System.out.println("--myNoSelected--");  
}  

} `
接下來我們來說finalhttp
顧名思義 看上面解釋 我們來談代碼

FinalHttp http = new FinalHttp();
                AjaxParams params = new AjaxParams();//get或者post傳遞的參數
                params.put("xx", xx);
                params.put("xxx", xx);
                params.put("xx", new file("xxxx"));//文件上傳
            params.put("profile_picture2", inputStream); // 上傳數據流
  params.put("profile_picture3", new ByteArrayInputStream(bytes)); // 提交字節流 
                http.configTimeout(3000);
                http.post/*(get)*/(Config.HOST + "Login", params,
                        new AjaxCallBack<String>() {
                            // 當我們請求失敗的時候會被調用,errorNo是請求失敗之後,服務器的錯誤碼,StrMsg則是錯誤信息
                            public void onFailure(Throwable t, int errorNo,
                                    String strMsg) {

                                super.onFailure(t, strMsg);

                            }

                            // 如果請求成功,則調用這個回調函數,t就是服務器返回的字符串信息
                            public void onSuccess(String t) {
                                super.onSuccess(t);

                                }}});

接下來介紹finalbitmap的使用
FinalBitmap finalBitmap = FinalBitmap.create(context); // 初始化
finalBitmap.configLoadingImage(R.drawable.default_user);//設置加載時圖片
finalBitmap.configLoadfailImage(R.drawable.default_user);//設置加載失敗時圖片
finalBitmap.display(imageview, url);//設置顯示 參數爲要顯示的imageview或者其子類也行 url就是圖片路徑啦
哈哈哈哈是不是很簡單23333

發佈了35 篇原創文章 · 獲贊 9 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章