2015년 7월 24일 금요일

small project) 띠 계산 앱 만들기의 java, layout 파일

activity_main.xml

<RelativeLayout 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"
    tools:context="${relativePackage}.${activityClass}" >

    <Button
        android:id="@+id/buttonStart"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="190dp"
        android:text="Start" />

    <Button
        android:id="@+id/buttonSetup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/buttonStart"
        android:layout_below="@+id/buttonStart"
        android:layout_marginTop="40dp"
        android:text="Setup" />

</RelativeLayout>



activity_setup.xml

<RelativeLayout 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"
    tools:context="${relativePackage}.${activityClass}" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="이름" />

    <EditText
        android:id="@+id/editTextName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1"
        android:ems="10"
        android:inputType="textPersonName" >
    </EditText>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/editTextName"
        android:text="생년" />

    <EditText
        android:id="@+id/editTextYearBorn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView2"
        android:ems="10" >

    </EditText>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/editTextYearBorn"
        android:text="Save" />

</RelativeLayout>


activity_display.xml

<RelativeLayout 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"
    tools:context="${relativePackage}.${activityClass}" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="Hello" />

</RelativeLayout>


MainActivity.java

package com.example.mybirthdayapp;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button buttonStart = (Button)findViewById(R.id.buttonStart);

buttonStart.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, DisplayActivity.class);
startActivity(intent);
}
});

Button buttonSetup = (Button)findViewById(R.id.buttonSetup);

buttonSetup.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, SetupActivity.class);
startActivity(intent);
}
});
}
}


SetupActivity.java

package com.example.mybirthdayapp;

import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class SetupActivity extends Activity {

EditText editTextName;
EditText editTextYearBorn;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_setup);

Button saveButton = (Button)findViewById(R.id.button1);
editTextName = (EditText)findViewById(R.id.editTextName);
editTextYearBorn = (EditText)findViewById(R.id.editTextYearBorn);

String name = MyUtil.getPreferenceString(getApplicationContext(), "name", "");
Integer yearBorn = MyUtil.getPreferenceInt(getApplicationContext(), "yearBorn", 1995);

editTextName.setText(name);
editTextYearBorn.setText(yearBorn+"");

saveButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String name = editTextName.getText().toString();
String yearBorn = editTextYearBorn.getText().toString();

MyUtil.savePreferenceString(getApplicationContext(), "name", name);
MyUtil.savePreferenceInt(getApplicationContext(), "yearBorn", Integer.valueOf(yearBorn));

Toast.makeText(getApplicationContext(), "Saved!", Toast.LENGTH_SHORT).show();

finish();
}
});
}
}

DisplayActivity.java

package com.example.mybirthdayapp;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class DisplayActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display);

TextView textView = (TextView)findViewById(R.id.textView1);

String name = MyUtil.getPreferenceString(getApplicationContext(), "name", "");
Integer yearBorn = MyUtil.getPreferenceInt(getApplicationContext(), "yearBorn", 1995);

String animal = "";

int namuji = yearBorn % 12;

if (namuji == 4) animal = "쥐띠";
else if (namuji == 5) animal = "소띠";
else if (namuji == 6) animal = "호랑이띠";
else if (namuji == 7) animal = "토끼띠";
else if (namuji == 8) animal = "용띠";
else if (namuji == 9) animal = "뱀띠";
else if (namuji == 10) animal = "말띠";
else if (namuji == 11) animal = "양띠";
else if (namuji == 0) animal = "원숭이띠";
else if (namuji == 1) animal = "닭띠";
else if (namuji == 2) animal = "개띠";
else if (namuji == 3) animal = "돼지띠";

textView.setText("Hi, "+name + " You're born in " + yearBorn + " your animal " + animal);
}
}


MyUtil.java


package com.example.mybirthdayapp;

import android.content.Context;
import android.content.SharedPreferences;

public class MyUtil {

private static final String pref_name = "appname";
private static final int pref_mode = Context.MODE_PRIVATE;
//////////////////////////////////////////////////////////////////////////
private static SharedPreferences getPref(Context context) {
return context.getSharedPreferences(pref_name, pref_mode);
}

//////////////////////////////////////////////////////////////////////////
public static void savePreferenceString(Context context, String key, String value) {
getPref(context).edit().putString(key, value).commit();
}

public static String getPreferenceString(Context context, String key, String value) {
return getPref(context).getString(key, value);
}
//////////////////////////////////////////////////////////////////////////

public static void savePreferenceInt(Context context, String key, Integer value) {
getPref(context).edit().putInt(key, value).commit();
}

public static Integer getPreferenceInt(Context context, String key, Integer value) {
return getPref(context).getInt(key, value);
}
}





Shared Preference 사용법

MyUtil.java 라는 java파일을 만듭니다!


그 안에 다음과 같은 내용을 타이핑해주세요~




private static final String pref_name = "appname";
private static final int pref_mode = Context.MODE_PRIVATE;
//////////////////////////////////////////////////////////////////////////
private static SharedPreferences getPref(Context context) {
return context.getSharedPreferences(pref_name, pref_mode);
}

//////////////////////////////////////////////////////////////////////////
public static void savePreferenceString(Context context, String key, String value) {
getPref(context).edit().putString(key, value).commit();
}

public static String getPreferenceString(Context context, String key, String value) {
return getPref(context).getString(key, value);
}
//////////////////////////////////////////////////////////////////////////

public static void savePreferenceInt(Context context, String key, Integer value) {
getPref(context).edit().putInt(key, value).commit();
}

public static Integer getPreferenceInt(Context context, String key, Integer value) {
return getPref(context).getInt(key, value);
}




사용하는 측에서는 다음과 같이 사용하면 됩니다. 

MyUtil.savePreferenceString(getApplicationContext(), "name", "철수");

name이라는 key 에 "철수"라는 값이 저장됩니다. 

String name = MyUtil.getPreferenceString(getApplicationContext(), "name");

나중에 name 이라는 key에 있는 값을 가져오면 거기에 "철수"라는 값이 

들어가 있게 됩니다. 



2015년 7월 12일 일요일

Relative Layout 구체

Layout = View들을 담는 그릇

RelativeLayout = View의 위치를 다른 View와의 상대적 위치로 지정이 가능




  • CenterButton 은 Layout의 한가운데에 배치
  • UpButton 은 CenterButton 의 위 25dp 에 위치
  • DownButton 은 CenterButton 의 아래 25dp 에 위치


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/centerButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="CenterButton" />

    <Button
        android:id="@+id/upButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/centerButton"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="25dp"
        android:text="UpButton" />

    <Button
        android:id="@+id/downButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/centerButton"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="25dp"
        android:text="DownButton" />

</RelativeLayout>


id : 해당 view의 이름! 반드시 유일해야 한다~(다른 View가 같은 id안쓰도록~!)

layout_width : 해당 view의 가로길이

layout_height : 해당 view의 세로길이

                     match_parent 이면 담겨 있는 layout을 꽉 채운다. 
                     wrap_content 이면 내부 컨텐츠의 크기에 맞게 알아서 조절된다. 
                     50dp : 50 만큼의 크기

layout_centerHorizontal : 이 view를 수평 중앙에 둘까? true/false값 입력

layout_centerVertical : 이 view를 수직 중앙에 둘까? true/false값 입력 

layout_above : 어떤 view의 above(위)에 배치한다. 다른 view의 id를 넣어준다. 

layout_below : 어떤 view의 below(아래)에 배치한다. 다른 view의 id를 넣어준다. 

layout_marginBottom : 본 View의 바닥과 그 밑에 있는 view의 천장 사이에 둘 거리

layout_marginTop : 본 View의 천장과 그 위에 있는 view의 바닥 사이에 둘 거리








2015년 7월 11일 토요일

Activity, View, Layout 실습~

Android 의 Activity, View, Layout 
실습 강의 자료입니다~

자세히 알아보기를 클릭해주세요~

2015년 7월 8일 수요일

Android 개발 환경 구축~

Android 개발 환경 구축

1. Java JDK 설치 
Google 에서 검색 "JDK 설치" 혹은 아래 url에서 JDK 다운
http://www.oracle.com/technetwork/java/javase/downloads/index.html

자신의 PC의 운영체제와 64bit/32bit인지 확인하여 다운받는다.
내 컴이 몇 비트인지 확인하려면 내 컴퓨터에서 마우스 오른쪽 클릭하여 확인 가능~

2. Eclipse Download
http://www.eclipse.org/downloads/
에서 eclipse for java 를 다운받자.

3. Android SDK 다운로드 및 설치
http://developer.android.com/sdk/index.html
에서
Other Download Options -> SDK Tools Only
에서 자신의 운영체제에 맞는 SDK를 다운받아 설치를 하자. 

4. Eclipse Android Plug-in 설치

2번에서 다운 받은 Eclipse를 킨 후에

1) Help > Install New Software.

2) Click Add

    name : ADT Plugin
    url : https://dl-ssl.google.com/android/eclipse/

3) 입력하여 선택하여 끝까지 설치 진행

*참고)  http://developer.android.com/sdk/installing/installing-adt.html

5. 본인의 Anroid 스마트폰 USB 디버깅 옵션 On

구글에서 다음 키워드 조합하여 검색

1) 본인의 스마트폰 모델
2) usb 디버깅
3) 개발자 옵션 활성화

개발자 옵션이 숨겨져 있는 경우가 많으며, 이를 위해
설정 -> 디바이스 정보 -> 빌드 번호 연타

개발자 옵션 -> USB 디버깅 활성화

해야 한다.

6. Android 개발자 등록 (구글마켓에 앱 업로드 희망 시)

구글 계정에 로그인 한 후,

구글에서 다음 키워드로 검색

android developer console

검색 결과 중 Google Play 개발자 콘솔 클릭

이후, 신용카드로 25달러 결제하면서 개발자 등록 진행