package com.example.day0011;
import android.content.context;
import android.graphics.canvas;
import android.util.attributeset;
import android.util.log;
import android.view.view;
import android.view.viewgroup;
import android.widget.linearlayout;
public
class
shengroup
extends
viewgroup
public
shengroup
(context context, attributeset attrs)
//onmesure() ——計算childview的測量值以及模式,以及設定自己的寬和高。
@override
protected
void
onmeasure
(int widthmeasurespec,
int heightmeasurespec)
int heightmode = measurespec.
getmode
(heightmeasurespec)
;int heightsize = measurespec.
getsize
(heightmeasurespec)
;switch
(heightmode)
setmeasureddimension
(groupwidth,groupheight);}
//通過getchildcount()獲取子view數量,
// getchildat獲取所有子view,
//那個所有view 的寬的資料 相加
//如果小於group的寬 橫排
//如果大於group的寬,豎排
// 分別呼叫layout(int l, int t, int r, int b)確定每個子view的擺放位置。
@override
protected
void
onlayout
(boolean changed,
int l,
int t,
int r,
int b)
else}}
@override
protected
void
ondraw
(canvas canvas)
//實現乙個布局的屬性
@override
public layoutparams generatelayoutparams
(attributeset attrs)
}
<
?xml version=
"1.0" encoding=
"utf-8"
?>
""""
xmlns:tools=
""android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
tools:context=
".main3activity"
>
android:id=
"@+id/group"
android:background=
"#ff0000"
android:layout_width=
"300dp"
android:layout_height=
"match_parent"
>
android:layout_width=
"100dp"
android:text=
"哈哈"
android:background=
"@color/colorprimarydark"
android:layout_height=
"100dp"
>
<
/textview>
android:layout_width=
"100dp"
android:text=
"嘿嘿"
android:background=
"@color/colorprimarydark"
android:layout_height=
"100dp"
>
<
/textview>
<
/com.example.day0011.shengroup>
<
/linearlayout>
自定義ViewGroup(一)
1 概述 viewgroup是乙個view的容器,他可以給出childview的測量模式和測量其寬高,他的作用非常重要。childview測量模式 exactly 表示設定了精確的值,一般當childview設定其寬 高為精確值 match parent時,viewgroup會將其設定為exactl...
ViewGroup 自定義控制項
自定義viewgroup這篇文章是針對自定義layoutmanager來寫的,提取出相關自定義的相同點。所有的自定義都可以歸結為在父控制項裡面放置子控制項。一 繼承類 viewgroup 繼承之後需要實現構造,由於一般是在xml中引入所有需要實現以下構造 viewgroup context cont...
自定義ViewGroup 回顧
自定viewgroup要比自定義view要複雜一點,因為自定義viewgroup不僅測量自身還要測量子元素和及重寫onlayout 來一次排列子view。下面這篇文章是關於自定義viewgroup的一些基本知識,這些主要內容來自 android開發藝術探索 在文章最後又這本書的網上版本。viewgr...