I am trying to create a custom border by creating a custom view. Here is an example of one side of the border:
package com.sparkydev.guessaphrase; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.drawable.ShapeDrawable; import android.graphics.drawable.shapes.RectShape; import android.util.AttributeSet; import android.view.View; public class LeftBorder extends View { private ShapeDrawable vertRect, horizRect; public LeftBorder(Context context, AttributeSet attributeset) { super(context, attributeset); int width = this.getWidth(); int height = this.getHeight(); vertRect = new ShapeDrawable(new RectShape()); vertRect.getPaint().setColor(Color.RED); vertRect.setBounds(0, 0, width/10, height); horizRect = new ShapeDrawable(new RectShape()); horizRect.getPaint().setColor(Color.RED); horizRect.setBounds(0, 0, width, height/9); } protected void onDraw(Canvas canvas){ vertRect.draw(canvas); horizRect.draw(canvas); } }
And the other side is defined in much the same way. XML is defined as such:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/wallpaper"> <com.sparkydev.guessaphrase.LeftBorder android:id="@+id/leftborder" android:layout_alignParentLeft="true" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <FrameLayout android:id="@+id/FrameLayout01" android:layout_width="wrap_content" android:layout_height="wrap_content" > </FrameLayout> <com.sparkydev.guessaphrase.RightBorder android:layout_alignParentRight="true" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/leftborder" /> </RelativeLayout>
The problem is that borders are not displayed at all. The background shows, but nothing more.
source share