在开发Android过程中,有时已有的Loyout布局不能完全满足设计需求,这时需要在已有的Layout基础上上进行扩展,以达到通过配置文件描述布局的设计原则。
首先第一一个布局类,重写其onDraw方法。
public static class iRelativeLayout extends RelativeLayout { private Paint mPaint; private Rect mRect; public iRelativeLayout( Context context, AttributeSet attrs ) { super(context, attrs); mRect = new Rect(); mPaint = new Paint(); mPaint.setStyle(Paint.Style.FILL_AND_STROKE); mPaint.setColor(0xFFCBD2D8); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawColor(0xFFC5CCD4); this.getDrawingRect(mRect); for (int i = 0; i < mRect.right; i += 7) { canvas.drawRect(mRect.left + i, mRect.top, mRect.left + i + 2, mRect.bottom, mPaint); } } }
其次,在布局配置文件中引用:
<?xml version="1.0" encoding="utf-8"?>
<view xmlns:android="http://schemas.android.com/apk/res/android"
class="iRelativeLayout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background = "#C5CCD4FF"
>
<LinearLayout
android:id = "@+id/TabLayout_One"
android:layout_width = "fill_parent"
android:layout_height = "fill_parent"
android:layout_above = "@+id/Tabs"
>
<ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content">
<RelativeLayout
android:layout_width = "fill_parent"
android:layout_height = "fill_parent"
android:visibility = "visible"
>
<Button
android:id = "@+id/ButtonOne"
android:layout_width = "wrap_content"
android:layout_height = "fill_parent"
android:text = "h3h3h3"
/>
<Button
android:id = "@+id/ButtonTwo"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "11222"
android:layout_below ="@+id/ButtonOne"
/>
<Button
android:id = "@+id/ButtonThree"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "wass"
android:layout_below ="@+id/ButtonTwo"
/>
</RelativeLayout>
</ScrollView>
</LinearLayout>
</view>
最后,和其他布局一样使用即可。