도래울

안드로이드 달력 만들기 본문

개발/Android

안드로이드 달력 만들기

도래울 2016. 2. 5. 13:18

 


main.xml

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center_horizontal"
    android:background="#FFFFFFFF"
    >
    
    <LinearLayout
     android:orientation="horizontal"
     android:layout_width="fill_parent"    
     android:layout_height="wrap_content"
     android:layout_marginTop="10px"
     android:layout_marginLeft="10px"
     android:layout_marginRight="10px"    
    >
    
    <Button
     android:layout_width="wrap_content"
     android:layout_height="fill_parent"
     android:text="PRE"
     android:id="@+id/pre"
     android:layout_weight="1"
    />
    <TextView
     android:layout_width="wrap_content"
     android:layout_height="fill_parent"
     android:text="today"     
     android:id="@+id/today"
     android:layout_weight="3"
     android:textColor="#FF000000"
     android:gravity="center_horizontal|center_vertical"
     />
    <Button
     android:layout_width="wrap_content"
     android:layout_height="fill_parent"
     android:text="NEXT"
     android:id="@+id/next"
     android:layout_weight="1"
    />
    
    </LinearLayout>
    
    <TableLayout
     android:id="@+id/week"
     android:layout_width="fill_parent"    
     android:layout_height="wrap_content"
     android:shrinkColumns="true"
     android:stretchColumns="true"
     android:background="#FF8DC701"
     android:layout_marginLeft="10px"
     android:layout_marginRight="10px"
     >
     <TableRow>
      <TextView 
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="일"      
      android:textColor="#FFFF0000"
      
      android:gravity="center_horizontal" />     
      <TextView 
      android:text="월" 
      android:gravity="center_horizontal"
      android:layout_width="wrap_content"
      android:textColor="#FF000000"
      android:layout_height="wrap_content"/>
      <TextView 
      android:text="화" 
      android:gravity="center_horizontal"
      android:layout_width="wrap_content"
      android:textColor="#FF000000"
      android:layout_height="wrap_content"/>
      <TextView 
      android:text="수" 
      android:gravity="center_horizontal"
      android:layout_width="wrap_content"
      android:textColor="#FF000000"
      android:layout_height="wrap_content"/>
      <TextView 
      android:text="목" 
      android:gravity="center_horizontal"
      android:layout_width="wrap_content"
      android:textColor="#FF000000"
      android:layout_height="wrap_content"/>
      <TextView 
      android:text="금" 
      android:gravity="center_horizontal"
      android:layout_width="wrap_content"
      android:textColor="#FF000000"
      android:layout_height="wrap_content"/>
      <TextView 
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="토" 
      android:textColor="#FF0000FF"
      android:gravity="center_horizontal"/>
     </TableRow>
    </TableLayout>
    
    <TableLayout
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:id="@+id/table"
     android:background="#FFF6F3A4"     
     android:layout_marginLeft="10px"
     android:layout_marginRight="10px"
    />
</LinearLayout>

 

HomeworkCalendar2 .java

 

 

package exam.HomeworkCalendar2;

import java.util.Date;
import java.util.Vector;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.LinearLayout.LayoutParams;

public class HomeworkCalendar2 extends Activity {
    /** Called when the activity is first created. */
 
 Vector vec;
 int firstDay;
 int totDays;
 int iYear;
    int iMonth;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Date today = new Date();
        iYear = today.getYear();
        iMonth = today.getMonth();
        
        vec = new Vector();
        TableLayout table = (TableLayout)findViewById( R.id.table );
        for( int i = 0 ; i < 6 ; i++ ){
         TableRow tr = new TableRow( this );
         for( int j = 0 ; j < 7 ; j++ ){
          TextView tv = new TextView( this );
          
          if( j == 0 )
           tv.setTextColor( Color.RED );
          else if( j == 6 )
           tv.setTextColor( Color.BLUE );
          else
           tv.setTextColor( Color.BLACK );
           
          tv.setGravity( Gravity.CENTER_HORIZONTAL );
          
          tr.addView( tv );
          vec.add( tv );
         }
         table.addView( tr );         
        }
        
        table.setStretchAllColumns( true );
        
        table = (TableLayout)findViewById( R.id.week );
        table.setStretchAllColumns( true );
        
        setCalendar( iYear, iMonth );
        
        Button btn = (Button)findViewById( R.id.pre );
        btn.setOnClickListener( new Button.OnClickListener(){
         
   public void onClick(View v) {
    
    iMonth--;
    setCalendar( iYear, iMonth );
    
   }
        });
        
        btn = (Button)findViewById( R.id.next );
        btn.setOnClickListener( new Button.OnClickListener(){
         
   public void onClick(View v) {
    
    iMonth++;
    setCalendar( iYear, iMonth );
    
   }
        });
    }
    
    private void setCalendar( int year, int month ){
     
     
     Date date = new Date();
     date.setYear( year );
     date.setMonth( month );
     date.setDate( 1 );

     firstDay = date.getDay();
        
        totDays = 31;
         for( int i = 29 ; i <= 32 ; i++ ){
          date.setDate( i );
          if( date.getDate() == 1 ){
           totDays = i - 1;
           break;
          }
         }
         
         Log.i("mylog", firstDay + " " + totDays );

        date = new Date();
        date.setYear( year );
      date.setMonth( month );
      
        iYear = date.getYear();
        iMonth = date.getMonth();
        
     TextView tvToday = (TextView)findViewById( R.id.today );
     tvToday.setText( (iYear + 1900) + "년" + (iMonth + 1) + "월");
     
     
     
     for( int i = 0 ; i < vec.size() ; i++ ){
      ((TextView)vec.get( i )).setText("");
     }
     
     int iDate = 1;
        for( int i = firstDay ; i < firstDay + totDays; i++ ){
         
         ((TextView)vec.get( i )).setText( String.valueOf( iDate++ ) );
        }
     
    }
}

 

Comments