What I want: dynamically add the image inside the box and if a line is complete then add it to new line.
WHere I am currently: I am able to add the image inside the linear layout, if no of image is greater than the block width then remaining image will not shown.
What is the issue: Since I am adding to the linear layout and I am not telling the layout where I should be added. SO it add at the end of the row.
Solution Tried: :
I have added the gridview with the 3 column inside the linear layout.But in this approach, I am able to figure about how to calculate the position where I add image. Since in grid view we can't find the position of last item filled. One more problem with this approach I need to track last item position.
xml code:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
android:id="@+id/relativeView"
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"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.v7.widget.Toolbar>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:paddingTop="@dimen/activity_horizontal_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:layout_marginTop="?attr/actionBarSize"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:weightSum="2"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:textStyle="bold"
android:textColor="@color/green"
android:gravity="center_horizontal"
android:layout_weight="1"
android:text="Morning"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<TextView
android:textStyle="bold"
android:textColor="@color/green"
android:gravity="center_horizontal"
android:layout_weight="1"
android:text="Afternoon"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.0"
android:orientation="horizontal" >
<LinearLayout
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginEnd="@dimen/activity_vertical_margin"
android:background="@drawable/rectangle_curve"
android:orientation="horizontal"
android:padding="@dimen/activity_vertical_margin"
android:id="@+id/ll1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.0">
<!-- <GridView
android:layout_weight="1.0"
android:layout_marginTop="@dimen/cardview_default_elevation"
android:orientation="horizontal"
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginEnd="@dimen/activity_vertical_margin"
android:background="@drawable/rectangle_curve"
android:horizontalSpacing="10dp"
android:verticalSpacing="10dp"
android:numColumns="auto_fit"
android:id="@+id/gv1"
android:layout_width="match_parent"
android:layout_height="match_parent">
</GridView>-->
</LinearLayout>
<LinearLayout
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginStart="@dimen/activity_vertical_margin"
android:background="@drawable/rectangle_curve"
android:padding="@dimen/activity_vertical_margin"
android:orientation="horizontal"
android:id="@+id/ll2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.0">
<!--<GridView
android:layout_weight="1.0"
android:layout_marginTop="@dimen/cardview_default_elevation"
android:orientation="horizontal"
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginEnd="@dimen/activity_vertical_margin"
android:background="@drawable/rectangle_curve"
android:horizontalSpacing="10dp"
android:verticalSpacing="10dp"
android:numColumns="auto_fit"
android:id="@+id/gv2"
android:layout_width="match_parent"
android:layout_height="match_parent">
</GridView>
-->
</LinearLayout>
</LinearLayout>
<LinearLayout
android:weightSum="2"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:textStyle="bold"
android:textColor="@color/green"
android:gravity="center_horizontal"
android:layout_weight="1"
android:text="Evening"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<TextView
android:textStyle="bold"
android:textColor="@color/green"
android:gravity="center_horizontal"
android:layout_weight="1"
android:text="Night"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:weightSum="2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.0"
android:orientation="horizontal" >
<LinearLayout
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginEnd="@dimen/activity_vertical_margin"
android:orientation="horizontal"
android:padding="@dimen/activity_vertical_margin"
android:background="@drawable/rectangle_curve"
android:id="@+id/ll3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.0">
<!--
<GridView
android:layout_weight="1.0"
android:layout_marginTop="@dimen/cardview_default_elevation"
android:orientation="horizontal"
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginEnd="@dimen/activity_vertical_margin"
android:background="@drawable/rectangle_curve"
android:horizontalSpacing="10dp"
android:verticalSpacing="10dp"
android:numColumns="auto_fit"
android:id="@+id/gv3"
android:layout_width="match_parent"
android:layout_height="match_parent">
</GridView>-->
</LinearLayout>
<LinearLayout
android:background="@drawable/rectangle_curve"
android:layout_marginStart="@dimen/activity_vertical_margin"
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:orientation="horizontal"
android:id="@+id/ll4"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.0">
<!-- <GridView
android:layout_weight="1.0"
android:layout_marginTop="@dimen/cardview_default_elevation"
android:orientation="horizontal"
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginEnd="@dimen/activity_vertical_margin"
android:background="@drawable/rectangle_curve"
android:horizontalSpacing="10dp"
android:verticalSpacing="10dp"
android:numColumns="auto_fit"
android:id="@+id/gv4"
android:layout_width="match_parent"
android:layout_height="match_parent">
</GridView>
-->
</LinearLayout>
</LinearLayout>
</LinearLayout>
<android.support.design.widget.FloatingActionButton
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:id="@+id/fab_add_reminders"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_action_add"
app:backgroundTint="@color/white"
android:layout_gravity="bottom|end" />
</android.support.design.widget.CoordinatorLayout>
You may use
android:numColumns="auto_fit"
attribute to your gridview. It will automatically fit according to the number of images.Then you can add your linearlayout programmatically in getview() method of adapter class. To add linearlayout to your gridview you may consider following example
Inside your "put_linearlayout_here.xml" you add linearlayout (with your cherished background ) and inside it add an imageview with id "ivImg". Hope this helps.