001.轉載吧,目前自定義view只是剛剛入門,在這裏記錄一些講的很到位的博客:
有這4篇文章就算你是碼渣也能成神,再次感謝各位博主傾心鉅獻
no01.谷歌的小弟大神鉅獻,珍藏之作
no02.細緻入微,歡迎品讀,適合新手
no03. 這位博主講的很到位,點擊查看
no04.這位博主講的很有份量,點擊查看
002.onMeasure中常見寫法
private int defalutSize = 200;//具體看情況設置 @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); int width = getMySize(defalutSize, widthMeasureSpec); int height = getMySize(defalutSize, heightMeasureSpec); //......此處可以做一些處理 setMeasuredDimension(width, height); } /** * 獲取控件尺寸 * * @param defaultSize 默認的尺寸大小 * @param measureSpec onMeasure傳進來的值 * @return */ private int getMySize(int defaultSize, int measureSpec) { int mySize = defaultSize; int mode = MeasureSpec.getMode(measureSpec); int size = MeasureSpec.getSize(measureSpec); switch (mode) { case MeasureSpec.UNSPECIFIED: {//如果沒有指定大小,就設置爲默認大小 mySize = defaultSize; break; } case MeasureSpec.AT_MOST: {//如果測量模式是最大取值爲size //我們將大小取最大值,你也可以取其他值 mySize = size; break; } case MeasureSpec.EXACTLY: {//如果是固定的大小,那就不要去改變它 mySize = size; break; } } return mySize; }
003.不斷更新中,有好文第一時間記錄、學習,有好文希望大家多多推薦學習