零門檻!ZBLibrary仿微信朋友圈自定義View,就是這麼簡單!

傳統方法是繼承現有View再重寫方法,這種方式缺點很多:

1.往往不能在xml編輯器中預覽效果;

2.比較難實現預期效果,比如設置寬度爲wrap_content,實際顯示爲match_parent等;

3.需要在xml代碼中聲明自定義View的全路徑,經常無法自動補全,需要手動複製粘貼路徑;

4.一旦自定義View修改了全路徑(移動至其它package、刪除等),xml代碼中並不會同步,但能編譯通過,然後在渲染這個自定義View時崩潰;

5.需要學習draw,measure等平時比較少用的方法;

6.需要維護大量代碼,constructor就得重寫3個。

使用ZBLibrary自定義View,以上通通不是問題!!!

最終效果圖和源碼如下

下載試用 TestSelfDefineView.apk

下載源碼 TestSelfDefineView.zip

 

 

如何使用ZBLibrary自定義View

一、準備

1.依賴ZBLibrary

 

2.分別複製DemoView,demo_view,KeyValueBean到你自己項目的對應目錄下 

二、使用

這裏以MainActivity和MainActivity的界面佈局activity_main做示範

1.在activity_main中的根佈局(最外層佈局)內添加以下代碼

 <LinearLayout

        android:id="@+id/llMainContainer"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:orientation="vertical" >

 </LinearLayout>

 

  

2.添加以下代碼到MainActivity的onCreate方法或者它裏面調用的方法中。

 

ImageLoaderUtil.init(this);

 

LinearLayout llMainContainer = (LinearLayout) findViewById(R.id.llMainContainer);

llMainContainer.removeAllViews();

 

DemoView demoView = new DemoView(this, null);

llMainContainer.addView(demoView.getView());

 

KeyValueBean data = new KeyValueBean("KEY", "123");

demoView.setView(data);

 

 

3.修改複製過來的DemoView中的KeyValueBean路徑爲你項目中的路徑,這裏爲 com.example.testselfdefinview.KeyValueBean,然後運行看效果

 

  

三、修改

1.分別改名稱爲你需要的,這裏分別改爲MyView,MyBean,my_view以作示範。

 

 

2.將MyView中import zuo.biao.library.R;中的zuo.biao.library路徑替換爲你項目的路徑。

 

3.將MyView中的demo_view改爲my_view;將MainActivity,MyView,my_view中的"DemoView"全部改爲"MyView"。

 

4.運行測試。如果出現問題,檢查以上步驟。

 

5.到這一步,將MyView看成一個Activity,將my_view看成這個Activity的界面佈局,然後修改MyView,MyBean,my_view代碼爲你想要的,就這麼簡單!

 

注:ZBLibrary自定義View方式不是萬能的,實現一些特殊功能還是要用繼承現有View的方式,不過在大多數情況下ZBLibrary都能用並且比繼承現有View好很多。

 

 

ZBLibrary-Android快速開發框架

下載地址(歡迎Star,歡迎Fork)

https://github.com/TommyLemon/Android-ZBLibrary

下載試用

ZBLibraryDemoApp.apk

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章