1. 程式人生 > >Android基礎知識框架篇-----------常用框架的使用方法

Android基礎知識框架篇-----------常用框架的使用方法

  在開發中或多或少會用到開源庫,用開源庫的好出是,簡化自己的程式碼,提升程式的穩定性(畢竟開源庫已經經過很長時間的檢驗了)。下面就來總結一下android  開發中常用到的開源庫

有關圖片的框架:

(1)Picasso       (畢加索)

android端圖片處理的神器 官網:http://square.github.io/picasso/

整合的方法  gradle  整合   implementation 'com.squareup.picasso:picasso:2.5.2'

具體的用法:

1)  Picasso.get().load(url).into(view); 可以繼續加連綴  

2)Picasso.get()

 .load(url)

 .resize(50, 50)

 .centerCrop()

 .into(imageView)

3) Picasso.get().load(R.drawable.landing_screen).into(imageView1);   

    Picasso.get().load("file:///android_asset/DvpvklR.png").into(imageView2);

    Picasso.get().load(new File(...)).into(imageView3);

(2)Glide  

(Glide滑行的意思,可以看出這個庫的主旨就在於讓圖片載入變的流暢)

跟Picsso有很大的類似  

整合的方法  gradle 整合   implementation 'com.github.bumptech.glide:glide:3.7.0'

基本的使用方法和Picsso很類似,但是Glide在載入gif圖和快取機制上還是明顯優於Picsso的,Glide的方法要多於Picsso。

(3)circleimageview  (輕易實現圖片的圓形化,)

整合的方法: gradle 整合   implementation  ‘de.hdodenhof:circleimageview:2.1.0’

基本的使用:

<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android" 

    xmlns:app="http://schemas.android.com/apk/res-auto" 

   android:id="@+id/activity_main" 

   android:layout_width="match_parent" 

   android:layout_height="match_parent" 

   android:gravity="center">  

   <de.hdodenhof.circleimageview.CircleImageView 

       android:id="@+id/circleImageView" 

       android:layout_width="150dp" 

       android:layout_height="150dp" 

       android:src="@mipmap/psb" 

       app:civ_border_color="@android:color/holo_red_dark" 

       app:civ_border_width="5dp" /> 

</RelativeLayout> 

 (4)banner 簡單快速實現圖片輪播

整合方法:gradle 整合: implementation 'com.youth.banner:banner:1.4.10'

基本的使用:

佈局:

<com.youth.banner.Banner
    android:id="@+id/Lunbotu"
    android:layout_width="match_parent"
    android:layout_height="150dp"
    android:layout_marginTop="5dp"
    android:layout_marginRight="12dp"
    android:layout_marginLeft="12dp"
    />

後臺程式碼:

private void setBanner() {
    //設定圖片集合
    List<Integer> imgs = new ArrayList<>();
    imgs.add(R.drawable.abc);
    imgs.add(R.drawable.bcd);
    imgs.add(R.drawable.efg);
    List<String> titles = new ArrayList<>();
    titles.add("教育圖片1");
    titles.add("教育圖片2");
    titles.add("教育圖片3");
    banner.setImages(imgs)
            .setBannerStyle( BannerConfig.CIRCLE_INDICATOR_TITLE)
            .setBannerTitles( titles )
            .setDelayTime(4000)
            .setBannerAnimation( Transformer.Tablet)
            .setImageLoader(new GlideImageLoader()).start();

}

有關網路的開源庫

(1)okhttp3  

為高效而生

整合方法 dradle 整合  implement   ‘ com.squareup.okhttp3:okhttp:3.2.0’

我們在一般的專案中應用的時候,編寫一個網路類,用的時候呼叫該類的靜態方法就可以了,

public class HttpUtil {

   public static  void  sendOKHttpRequest(String adress,

                                          okhttp3.Callback callback){

       OkHttpClient okHttpClient=new OkHttpClient();

       Request request=new Request.Builder()

                .url( adress )

                .build();

       okHttpClient.newCall( request ).enqueue( callback );

    }

}

傳入url就可以請求到網路資源,

 HttpUtil.sendOKHttpRequest( "url", new okhttp3.Callback() {

           @Override

           public void onFailure(Call call, IOException e) {

           }

           @Override

           public void onResponse(Call call, Response response) throws IOException{ 

                StringresponseData=response.body().string()         

           }

       } );

 有關解析的

GSON    

gradle整合方式 : implement ‘com.google.code.gson:gson:2.7’

能將json字串自動對映成一個物件,

基本的用法:

Gson gson =new Gson();

List<App> applist =gson.fromJson(jsonData,newTypeToken<List<App>>(){}.getType());

for (App app: applist){ 

}

有關資料庫的

Litepal 

官網地址:https://github.com/LitePalFramework/LitePal#latest-downloads

LitePal是一款開源的Android資料庫框架,採用物件關係對映(ORM)模式,將常用的資料庫功能進行封裝,可以不用寫一行SQL語句就可以完成建立表、增刪改查的操作。並且很輕量級,jar包不到100k,幾乎零配置。

Gradle 整合 不再贅述,可自行搜尋

ButterKnife的使用

1、強大的View繫結和Click事件處理功能,簡化程式碼,提升開發效率

2、方便的處理Adapter裡的ViewHolder繫結問題

3、執行時不會影響APP效率,使用配置方便

4、程式碼清晰,可讀性強

基本的使用步驟

在gradle檔案中加入如下程式碼

dependencies {
  implementation 'com.jakewharton:butterknife:9.0.0-rc1'
  annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc1'
}

該框架的好處在於採用註解的方式省去了一些findviewByid的重複操作

 @BindView(R2.id.button) //繫結button 控制元件  
    public Button button ; 

點選事件可以這樣寫

@OnClick(R2.id.button1 )    
   
 public void showToast(){  
     
   Toast.makeText(this, "is a click", Toast.LENGTH_SHORT).show(); 
 
    }