自定義控制01

2021-07-14 05:20:07 字數 1475 閱讀 8044

構造方法的使用:

(1)/**

* 在**裡面建立物件時進行使用此構造方法

* 當不需要使用xml宣告或者不需要使用inflate動態載入時候,實現此建構函式即可

* @param context 上下文

*/public circleview(context context)

(2)/**

* 在布局檔案中宣告view, 建立時由系統自動呼叫

* 當需要在xml中宣告此控制項,則需要實現此建構函式。並且在建構函式中把自定義的屬性與控制項的資料成員連線起來。

* @param context 上下文

* @param attrs 屬性

*/public circleview(context context, attributeset attrs)

(3)/**

* 接受乙個style資源

* @param context 上下文

* @param attrs 屬性

* @param defstyleattr 樣式屬性

*/public circleview(context context, attributeset attrs, int defstyleattr)

繼承view並重寫ondraw()方法的使用常見的一些問題:在繪製控制項時候呼叫,控制項具體長什麼樣子就在此方法中實現

1、wrap_content的問題解決:如果不對wrap_content進行處理時,它的wrap_content屬性和match_parent屬性相同,沒有任何區別。

解決辦法:只需要指定wrap_content模式的寬/高,比如可以選擇200dp作為預設的寬/高。

2、padding問題的處理辦法:在繪製的時候,考慮一下padding即可,考慮四周的空白,**如下:

final int paddingleft = getpaddingleft();

final int paddingright = getpaddingleft();

final int paddingtop = getpaddingleft();

final int paddingbottom = getpaddingleft();

//得到寬

int width = getwidth()-paddingleft-paddingright;

//得到高

int height = getheight()-paddingtop-paddingbottom;

//得到半徑

int radius = math.min(width, height) / 2;

canvas.drawcircle(paddingleft+width/2,paddingtop+height/2,radius,mpaint);

3、(1)自定義屬性的實現:在values資源檔案中建立乙個attr.xml,**如下:

自定義工具類01

ftputil ftpclient 工具類 idutils 生成一切id 的策略的工具類。可以使用他生成名稱 jsonutils 物件與json 格式轉換的工具類 public class ftputil 切換到上傳目錄if ftp.changeworkingdirectory basepath f...

自定義tabBar控制器

一 控制器部分 import jrtabbarconroller.h import jrtabbar.h inte ce jrtabbarconroller property nonatomic,weak uiviewcontroller currentvc end implementation j...

自定義控制器切換

1.先新增乙個view 選單欄 並新增約束 2.再往 選單欄view中,新增3個按鈕控制項,等高等寬 3.讓選單欄中3個按鈕都連線到控制器的buttonclick方法上,並建立3個控制器 4.父控制 viewcontroller.m import viewcontroller.h import on...