I wanted to repeat the background only vertically, but I did not find a suitable solution there, so I wrote it myself, I hope this can help someone there *
public class VerticallyRepeatedBackgroundLinearLayout extends LinearLayout { private int width, height; private RectF mRect; public VerticallyRepeatedBackgroundLinearLayout(Context context) { super(context); init(context); } public VerticallyRepeatedBackgroundLinearLayout(Context context, AttributeSet attrs) { super(context, attrs); init(context); } public VerticallyRepeatedBackgroundLinearLayout(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(context); } private void init(Context context) { setWillNotDraw(false); mRect = new RectF(); } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); if (oldw == 0 && oldh == 0 && w > 0 && h > 0) { width = w; height = h; } } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas);
and in your xml
<com.blah.blah.VerticallyRepeatedBackgroundLinearLayout android:id="@+id/collection_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/your_tile_bg"> </com.blah.blah.VerticallyRepeatedBackgroundLinearLayout>
Leo
source share