Butterknife
介紹:
快速快捷初始化控件的一個工具!
原理:
註解+反射
使用:
Activity
Fragment
Adapter
在對應的佈局上右鍵--》 generate --> butterknife
Adapter需要勾選 左下角的 createViewHolder即可
注意:使用Butterknife 需要添加對應jar包和對應的插件
8.0版本以後使用卻別:
問題:直接使用,無法正常初始化控件,會爆空指針!
解決方案:
1.Project的build.gradle文件中增加classpath內容:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' //增加這一句
2.app的build.gradle文件中增加classpath內容:
apply plugin: 'com.neenbedankt.android-apt'//增加這一句
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.jakewharton:butterknife:8.1.0'
apt 'com.jakewharton:butterknife-compiler:8.1.0'//增加這一句
註解
- 1.需要修改類的修飾符 @interface
- 2.聲明註解的方法 不用寫方法體
* - 註解的類名 相當於註解的名稱
- 註解的方法名 相當於註解的屬性名 defaulet默認的值 方法的返回值相當於屬性的賦值的類型
直接target標籤 type類型 指定作用的位置 如果不寫 隨便位置
Xutils3.0
1.xutils是android中的一個快速開發框架,xutils是基於afinal開發的,比afinal的穩定性提高了不少
2.xUtils支持超大文件上傳(超過2g),更全面的http請求協議支持(11種謂詞),擁有更加靈活的orm
3.xUtils最低兼容android4.0
4.xUtils3變化較多,Http實現替換HttpClient爲UrlConnectionXutils3.0內部包含哪些方面的工具類:
四個部分:
1.View控件的註解
2.網絡請求部分工具類
3.圖片加載部分的工具類
4.數據庫部分的工具類studio中如何導入xutils3.0的包
依賴 導入3.0即可
使用:
1.將程序的最低版本調製4.0以上!
2.導入jar包即可
compile ‘org.xutils:xutils:3.3.40’
3.添加權限
4.Application中進行框架的初始化工作x.Ext.init(this);
//參數1: Boolean類型 ture 代表輸出內部的日誌 但是輸出日誌影響開發性能!需要在程序上線時 關閉日誌輸出
x.Ext.setDebug(true);1.View控件的註解部分
目的: 和butterKnife一樣,更加快捷方便的進行控件的初始化和控件監聽事件的寫法
butterKnife和xutils控件註解部分的不同點:xutils部分,指定控件的點擊事件會更多!
Activity
1.在Activity的類上 @ContentView(R.layout.xxx) 2.onCreate中進行初始化 x.View().inject(Activity); 同時 去掉setContentView 3. @ViewInJect(控件的id) Button button; Fragment 1.在Fragment的類上 @ContentView(R.layout.xxx) 2.Fragment的onCreateView中進行初始化 View view = x.View().inject(Fragment,LayoutInflater,Viewgroup); 3.onCreateView中返回 x.view返回的View 4. @ViewInJect(控件的id) Button button;
Adapter
1.創建ViewHodler2.@ViewInJect(控件的id) Button button; 3.getView中初始化ViewHolder 4.ViewHolder綁定 x.view().inject(ViewHolder,convertView);
事件處理:
1.聲明對應的方法 -方法必須私有 private -方法的返回值 和 形參必須和對應的事件調用的方法 一直 例如: buttton.setOnClickListener(new OnClickListener{ public void onClick(View view){ } }) 仿; private void xxx(View view) 2.設置爲對應的事件 @Event(value={需要觸發事件的控件id},type=事件的類型 默認 View.OnClickListener.class)
2.xutils Imaege 圖片模塊
默認緩存的路徑: sdcard/Android/data/包名/cache/xutil_img 默認圖片格式: Bitmap.Config.RGB_565
默認是否加載gif圖片:ignoreGif = true 不加載
x.image().bind(imageView, url, imageOptions);
// assets file
x.image().bind(imageView, “assets://test.gif”, imageOptions);// local file
x.image().bind(imageView, new File(“/sdcard/test.gif”).toURI().toString(), imageOptions);
x.image().bind(imageView, “/sdcard/test.gif”, imageOptions);
x.image().bind(imageView, “file:///sdcard/test.gif”, imageOptions);
x.image().bind(imageView, “file:/sdcard/test.gif”, imageOptions);x.image().bind(imageView, url, imageOptions, new Callback.CommonCallback() {…});
x.image().loadDrawable(url, imageOptions, new Callback.CommonCallback() {…});
x.image().loadFile(url, imageOptions, new Callback.CommonCallback() {…});3.xutils 網路請求模塊
參數1:請求方式 HttpMethod.GET
參數2:請求的參數
創建 構造方法中 指定請求的路徑
RequestParams params = new RequestParams(“http://10.10.154.67/HttpServlet/pic/HelloServlet?fileName=s.rar“);params.addParams(key,values); 上傳文件: params.setMultipart(true); //多部分上傳 key: web後臺和你協商 jpg file rar value:要上傳的文件 //設置下載保存的路徑 params.setSaveFilePath(Environment.getExternalStorageDirectory()+File.separator+"xx.rar");
參數3: CallBack
1.CommonCallBack