構造方法的使用:
(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...