[android]_[ViewGroup的基本使用]

来源:互联网 发布:vs2013怎么用c语言 编辑:程序博客网 时间:2024/04/23 19:37

1.自定义类继承ViewGroup,必须定义构造函数、定制控件位置函数(onLayout())、测量函数(onMeasure())。

protected void onLayout(boolean changed, int left, int top, int right, int bottom) {       int mViewGroupWidth  = getMeasuredWidth();  //当前ViewGroup的总宽度          int mPainterPosX = left;  //当前绘图光标横坐标位置    int mPainterPosY = top;  //当前绘图光标纵坐标位置        int childCount = getChildCount();           for ( int i = 0; i < childCount; i++ ) {               View childView = getChildAt(i);         int width  = childView.getMeasuredWidth();        int height = childView.getMeasuredHeight();                                      //如果剩余的空间不够,则移到下一行开始位置        if( mPainterPosX + width > mViewGroupWidth ) {                         mPainterPosX = left;            mPainterPosY += height;        }                                  //执行ChildView的绘制        childView.layout(mPainterPosX,mPainterPosY,mPainterPosX+width, mPainterPosY+height);               //记录当前已经绘制到的横坐标位置        mPainterPosX += width;    }     }
xml中:
<com.titcktick.customview.CustomViewGroup xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent">     <View        android:layout_width="100dp"        android:layout_height="100dp"        android:layout_margin="10dp"        android:background="@android:color/black"/>       <View        android:layout_width="100dp"        android:layout_height="100dp"        android:layout_margin="10dp"        android:background="@android:color/black"/>              <View        android:layout_width="100dp"        android:layout_height="100dp"        android:layout_margin="10dp"        android:background="@android:color/black"/>       <View        android:layout_width="100dp"        android:layout_height="100dp"        android:layout_margin="10dp"        android:background="@android:color/black"/>    </com.titcktick.customview.CustomViewGroup>


0 0
原创粉丝点击