Recent Posts

Site Creator

By

By

By

Showing calendar months in a Year in Android

Posted on

Hi

Few days earlier I encountered with a software problem for android in which I have to show a calendar months in a year (eg 2016) refer below image.

2016-04-03

Initial Solution

Layout xml file

<LinearLayout

    android:id=”@+id/bgtoplevel”

    xmlns:android=”http://schemas.android.com/apk/res/android”

    android:layout_width=”match_parent”

    android:layout_height=”match_parent”

    android:background=”#ac060606″

    android:padding=”2dp”

    android:orientation=”vertical”>

    <LinearLayout

        android:id=”@+id/lltwo”

        android:orientation=”vertical”

        android:gravity=”center_horizontal”

        android:layout_width=”match_parent”

        android:layout_height=”match_parent” >

        <TextView

            android:background=”#896d03d1″

            android:text=”MONTH NAME”

            android:gravity=”center”

            android:textColor=”#FFFFFF”

            android:id=”@+id/calViewTitleYear”

            android:layout_width=”match_parent”

            android:layout_height=”50dp”/>

        <GridView

            android:layout_marginTop=”4dp”

            android:id=”@+id/gridview”

            android:layout_width=”match_parent”

            android:layout_height=”wrap_content”

            android:columnWidth=”100dp”

            android:numColumns=”6″

            android:stretchMode=”columnWidth”

            android:horizontalSpacing=”10dp”

            android:verticalSpacing=”20dp”>

        </GridView>

    </LinearLayout>

</LinearLayout>

 

 

Layout file for Gridview Items

<LinearLayout

    android:id=”@+id/bgtoplevel”

    xmlns:android=”http://schemas.android.com/apk/res/android”

    android:layout_width=”wrap_content”

    android:layout_height=”wrap_content”

    android:orientation=”vertical”>

    <TextView

        android:background=”#896d03d1″

        android:text=”MONTH NAME”

        android:textColor=”#FFFFFF”

        android:id=”@+id/calViewTitleYear”

        android:layout_width=”180dp”

        android:layout_height=”wrap_content”/>

    <GridView

        android:background=”@drawable/year_grid_item”

        android:id=”@+id/gridviewinner”

        android:layout_width=”180dp”

        android:layout_height=”160dp”

        android:columnWidth=”4dp”

        android:gravity=”center”

        android:numColumns=”7″

        android:stretchMode=”columnWidth”

        android:verticalSpacing=”2dp”>

    </GridView>

</LinearLayout>

 

Java Files

We will create a YearView Fragment

Year Grid Adapter

Problem with above solution is that it works but it is very slow to load in turns it affects User experience. So i think we need to find different solution. Lets create our griditems file as Table layout and TextViews rather than smaller gridviews and innergriditems.




 

Final Solution

<LinearLayout

            android:layout_width=”match_parent”

            android:layout_height=”match_parent”

            android:paddingLeft=”@dimen/activity_horizontal_margin”

            android:paddingRight=”@dimen/activity_horizontal_margin”

            android:paddingTop=”@dimen/activity_vertical_margin”

            >

            <GridView

                android:id=”@+id/gridView”

                android:layout_width=”match_parent”

                android:layout_height=”wrap_content”

                android:horizontalSpacing=”10dp”

                android:numColumns=”3″

                android:verticalSpacing=”10dp”/>

        </LinearLayout></pre>

Our gridview items layout

<pre class=”EnlighterJSRAW” data-enlighter-language=”java”>

<TableLayout

        xmlns:android=”http://schemas.android.com/apk/res/android”

        android:id=”@+id/tableLayout1″

        android:background=”#FFFFFF”

        android:layout_width=”match_parent”

        android:layout_height=”match_parent”

        android:padding=”2dp”

        android:shrinkColumns=”*”

        android:stretchColumns=”*”>

        <TableRow

            android:id=”@+id/tableRow2″

            android:layout_width=”match_parent”

            android:layout_height=”wrap_content”

            android:gravity=”center_horizontal”>

            <TextView

                android:id=”@+id/tvR2C1″

                style=”@style/calendar_month”

                android:layout_width=”wrap_content”

                android:layout_height=”wrap_content”

                android:layout_span=”7″

                android:text=”@string/month_title_1″/>

        </TableRow>

        <TableRow

            android:id=”@+id/tableRow4″

            android:layout_width=”match_parent”

            android:layout_height=”wrap_content”

            android:gravity=”center_horizontal”>

            <TextView

                android:id=”@+id/tvR4C1″

                style=”@style/calendar_date.sun”

                android:text=”S”/>

            <TextView

                android:id=”@+id/tvR4C2″

                style=”@style/calendar_date”

                android:text=”M”/>

            <TextView

                android:id=”@+id/tvR4C3″

                style=”@style/calendar_date”

                android:text=”T”/>

            <TextView

                android:id=”@+id/tvR4C4″

                style=”@style/calendar_date”

                android:text=”W”/>

            <TextView

                android:id=”@+id/tvR4C5″

                style=”@style/calendar_date”

                android:text=”T”/>

            <TextView

                android:id=”@+id/tvR4C6″

                style=”@style/calendar_date”

                android:text=”F”/>

            <TextView

                android:id=”@+id/tvR4C7″

                style=”@style/calendar_date.sat”

                android:text=”S”/>

        </TableRow>

        <TableRow

            android:id=”@+id/tableRow5″

            android:layout_width=”fill_parent”

            android:layout_height=”wrap_content”

            android:gravity=”center_horizontal”>

            <TextView

                android:id=”@+id/tvR5C1″

                style=”@style/calendar_date.sun”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR5C2″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR5C3″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR5C4″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR5C5″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR5C6″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR5C7″

                style=”@style/calendar_date.sat”

                android:text=”@string/date_x”/>

        </TableRow>

        <TableRow

            android:id=”@+id/tableRow6″

            android:layout_width=”fill_parent”

            android:layout_height=”wrap_content”

            android:gravity=”center_horizontal”>

            <TextView

                android:id=”@+id/tvR6C1″

                style=”@style/calendar_date.sun”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR6C2″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR6C3″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR6C4″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR6C5″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR6C6″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR6C7″

                style=”@style/calendar_date.sat”

                android:text=”@string/date_x”/>

        </TableRow>

        <TableRow

            android:id=”@+id/tableRow7″

            android:layout_width=”fill_parent”

            android:layout_height=”wrap_content”

            android:gravity=”center_horizontal”>

            <TextView

                android:id=”@+id/tvR7C1″

                style=”@style/calendar_date.sun”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR7C2″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR7C3″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR7C4″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR7C5″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR7C6″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR7C7″

                style=”@style/calendar_date.sat”

                android:text=”@string/date_x”/>

        </TableRow>

        <TableRow

            android:id=”@+id/tableRow8″

            android:layout_width=”fill_parent”

            android:layout_height=”wrap_content”

            android:gravity=”center_horizontal”>

            <TextView

                android:id=”@+id/tvR8C1″

                style=”@style/calendar_date.sun”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR8C2″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR8C3″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR8C4″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR8C5″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR8C6″

                style=”@style/calendar_date”

                android:text=”@string/date_x”/>

            <TextView

                android:id=”@+id/tvR8C7″

                style=”@style/calendar_date.sat”

                android:text=”@string/date_x”/>

        </TableRow>

        <TableRow

        android:id=”@+id/tableRow9″

        android:layout_width=”fill_parent”

        android:layout_height=”wrap_content”

        android:gravity=”center_horizontal”>

        <TextView

            android:id=”@+id/tvR9C1″

            style=”@style/calendar_date.sun”

            android:text=”@string/date_x”/>

        <TextView

            android:id=”@+id/tvR9C2″

            style=”@style/calendar_date”

            android:text=”@string/date_x”/>

        <TextView

            android:id=”@+id/tvR9C3″

            style=”@style/calendar_date”

            android:text=”@string/date_x”/>

        <TextView

            android:id=”@+id/tvR9C4″

            style=”@style/calendar_date”

            android:text=”@string/date_x”/>

        <TextView

            android:id=”@+id/tvR9C5″

            style=”@style/calendar_date”

            android:text=”@string/date_x”/>

        <TextView

            android:id=”@+id/tvR9C6″

            style=”@style/calendar_date”

            android:text=”@string/date_x”/>

        <TextView

            android:id=”@+id/tvR9C7″

            style=”@style/calendar_date.sat”

            android:text=”@string/date_x”/>

    </TableRow>

        <TableRow

        android:id=”@+id/tableRow10″

        android:layout_width=”fill_parent”

        android:layout_height=”wrap_content”

        android:gravity=”center_horizontal”>

        <TextView

            android:id=”@+id/tvR10C1″

            style=”@style/calendar_date.sun”

            android:text=”@string/date_x”/>

        <TextView

            android:id=”@+id/tvR10C2″

            style=”@style/calendar_date”

            android:text=”@string/date_x”/>

        <TextView

            android:id=”@+id/tvR10C3″

            style=”@style/calendar_date”

            android:text=”@string/date_x”/>

        <TextView

            android:id=”@+id/tvR10C4″

            style=”@style/calendar_date”

            android:text=”@string/date_x”/>

        <TextView

            android:id=”@+id/tvR10C5″

            style=”@style/calendar_date”

            android:text=”@string/date_x”/>

        <TextView

            android:id=”@+id/tvR10C6″

            style=”@style/calendar_date”

            android:text=”@string/date_x”/>

        <TextView

            android:id=”@+id/tvR10C7″

            style=”@style/calendar_date.sat”

            android:text=”@string/date_x”/>

    </TableRow>

    </TableLayout>

 

 







Disclaimer: The aforesaid writeup by Relsell Global writer is for the general understanding of the readers. It does not render any professional advice or opinion.

SHARE THIS PAGE!