在开发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>
最后,和其他布局一样使用即可。