<Gravity 정렬>


android:gravity 

자신 내부의 구성 요소의 위치 정의

ex)LinearLayout에 명시, 버튼의 위치 지정


 자신(layout)을 기준으로 해서 하위요소(View)를 배치


LinearLayout 위치

  android:gravity=""

     center : 정중앙

     center_vertical : 좌측중앙

     center_horizontal : 상단중앙


android:layout_gravity 

부모를 기준으로 자신의 위치 정의

ex)Button에 명시 , 레이아웃 안에서 Button의 위치 지정


부모(layout)를 기준으로해서 자신(View)을 배치


Button (View) 위치

android:layout_gravity=""



<?xml version="1.0" encoding="utf-8"?>
<!--
android:gravity = 자신 내부의 구성요소의 위치 정의
ex)LinearLayout에 명시,버튼의 위치 지정

android:layout_gravity = 부모를 기준으로 자신의 위치 정의
ex)Button에 명시, 레이아웃 안에서 Button의 레이블(문자열)의 위치 지정

-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:gravity="center_horizontal" >

<!--  
center :정중앙
center_vertical : 좌측 중앙
center_horizontal : 상단 중앙
 -->

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="정렬" />


</LinearLayout>



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

    
<!-- 
android:layout_gravity = 부모를 기준으로해서 자식을 배치
 -->    
    
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="정렬" 
        android:layout_gravity="center"
        />

</LinearLayout>

정중앙에 나오지 않는 이유

orientation vertical의 영향을 받아서


gravity 사용하여 정중앙에 배치해야됨



gravity

자신을 기준으로 하위요소 배치(전체 적인)



layout_gravity

부모를 기준으로 자신을 배치

layout          view


'Android > 기본' 카테고리의 다른 글

Android Margin Padding  (0) 2012.04.28
Android LinearLayout 가중치  (0) 2012.04.28
Linear Layout orientation  (0) 2012.04.28
Android Log Cat 사용 ,전화 걸기 문자 보내기 기능  (0) 2012.04.28
Android Radio Button  (0) 2012.04.28

뷰배치시 안정적으로 배치하기위해서 절대좌표 사용하지말고 상대좌표을 사용하도록하자.


LinearLayout


LinearLayout를 사용할때   android:orientation :    vertical => 세로배치

                                                                     horizontal => 가로배치


<?xml version="1.0" encoding="utf-8"?>
<!--
LinearLayout를 사용할때
android:orientation : vertical -> 세로배치
						horizontal -> 가로배치
-->

<!-- 세로 배치 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="첫번째" />
    
    
    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="두번째" />

    <!-- 가로 배치 -->

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="세번째" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="네번째" />
    </LinearLayout>

</LinearLayout>



'Android > 기본' 카테고리의 다른 글

Android LinearLayout 가중치  (0) 2012.04.28
Linear Layout gravity  (0) 2012.04.28
Android Log Cat 사용 ,전화 걸기 문자 보내기 기능  (0) 2012.04.28
Android Radio Button  (0) 2012.04.28
Android Check Box  (0) 2012.04.28



package kr.android.log;
//Log test
//@Override = 검증하는 기능을 함

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class LogTest extends Activity {
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		Log.i("LogTest","onCreate메서드 호출");
	}

	@Override
	protected void onStart(){
		super.onStart();
		Log.i("LogTest","onStart메서드 호출");
	}
	@Override
	protected void onRestart(){
		super.onRestart();
		Log.i("LogTest","onRestart메서드 호출");
	}
	@Override
	protected void onResume(){
		super.onResume();
		Log.i("LogTest","onResume메서드 호출");
	}
	@Override
	protected void onPause(){
		super.onPause();
		Log.i("LogTest","onPause메서드 호출");
	}
	@Override
	protected void onStop(){
		super.onStop();
		Log.i("LogTest","onStop메서드 호출");
	}
	@Override
	protected void onDestroy(){
		super.onDestroy();
		Log.i("LogTest","onDestroy메서드 호출");
	}
}

Log Cat 사용하기






작업확인하기


LogCat 메뉴에서 V, D, I, W, E 를 선택하면 로그 레벨별로 로그 메시지를 볼 수 있다.






예물레이터 전화걸기 문자보내기


 DDMS -> Emulator Control -> 전화,문자,위치정보

           -> File Explorer -> 탐색기









위도와 경도




탐색기능





'Android > 기본' 카테고리의 다른 글

Linear Layout gravity  (0) 2012.04.28
Linear Layout orientation  (0) 2012.04.28
Android Radio Button  (0) 2012.04.28
Android Check Box  (0) 2012.04.28
Android 필드 박스  (0) 2012.04.28
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <RadioGroup
        android:id="@+id/RadioGroup01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <RadioButton
            android:id="@+id/radio1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="가위" />

        <RadioButton
            android:id="@+id/radio2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="바위" />

        <RadioButton
            android:id="@+id/radio3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="보" />
    </RadioGroup>

    <TextView
        android:id="@+id/TextView01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>
package com.android.radiobutton;

//라디오 선택버튼

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

public class RadioButtonDemo extends Activity implements
		RadioGroup.OnCheckedChangeListener {
			// 이벤트 리스너
	TextView tv;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		//이벤트 소스
		RadioGroup group = (RadioGroup) findViewById(R.id.RadioGroup01);
		tv = (TextView) findViewById(R.id.TextView01);

		// 초기 선택 라디오 버튼 지정
		group.check(R.id.radio3);

		// RadioGroup(이벤트 소스)와 이벤트 리스너가 구현된 객체 연결
		group.setOnCheckedChangeListener(this);

	}

	// 이벤트 핸들러
	// 전달인자
	//RadioGroup group : 이벤트가 발생한 객체
	//int checkedId : 선택한 RadioButton의 id
	public void onCheckedChanged(RadioGroup group, int checkedId) {
		if (checkedId != -1) {
			RadioButton rb = (RadioButton) findViewById(checkedId);
			if (rb != null)
				tv.setText("You Chose : " + rb.getText());
		} else
			tv.setText("Choose 1");
	}
}



'Android > 기본' 카테고리의 다른 글

Linear Layout orientation  (0) 2012.04.28
Android Log Cat 사용 ,전화 걸기 문자 보내기 기능  (0) 2012.04.28
Android Check Box  (0) 2012.04.28
Android 필드 박스  (0) 2012.04.28
Android 이미지 넣기  (0) 2012.04.28
package com.commonsware.android.basic3;
//체크 박스
import android.app.Activity;
import android.os.Bundle;
import android.widget.CheckBox;
import android.widget.CompoundButton;

public class CheckBoxDemo extends Activity implements CompoundButton.OnCheckedChangeListener{
    CheckBox cb;
	
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        cb =(CheckBox)findViewById(R.id.check);
        
        //이벤트 소스와 이벤트 리스너가 구현된 객체 연결
        cb.setOnCheckedChangeListener(this);
    }
	//이벤트 핸들러
	//전달되는 인자
	//CompoundButton buttonView : 이벤트가 발생한 CheckBox
	//boolean isChecked : 체크박스가 선택되면 true
	//							미선택되면 false
	public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){
		if(isChecked){
			cb.setText("체크 상태");
		}
		else{
			cb.setText("체크 하세유");
		}
	}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <CheckBox
        android:id="@+id/check"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="체크하세유" />

</LinearLayout>



'Android > 기본' 카테고리의 다른 글

Android Log Cat 사용 ,전화 걸기 문자 보내기 기능  (0) 2012.04.28
Android Radio Button  (0) 2012.04.28
Android 필드 박스  (0) 2012.04.28
Android 이미지 넣기  (0) 2012.04.28
Android 간단한 이벤트3  (0) 2012.04.28
package com.commonsware.android.basic2;
//입력필드

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

public class FieldDemo extends Activity {

	@Override
	public void onCreate(Bundle icicle) {
		super.onCreate(icicle);
		setContentView(R.layout.main);

		EditText fld = (EditText) findViewById(R.id.field);
		fld.setText("버튼, 레이블과 함께 입력 필드 역시"
				+ "\"GUI 툴킷\"의 가장 핵심적인 기본 위젯 가운데 하나임");
	}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/field"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:singleLine="false"
         />

</LinearLayout>



'Android > 기본' 카테고리의 다른 글

Android Radio Button  (0) 2012.04.28
Android Check Box  (0) 2012.04.28
Android 이미지 넣기  (0) 2012.04.28
Android 간단한 이벤트3  (0) 2012.04.28
Android 간단한 이벤트2  (0) 2012.04.28
package com.commonsware.android.basic;

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

public class ImageViewDemo extends Activity {
  
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <!--  adjustViewBounds 종횡비율 맞춰서 크기 줄이기     -->
    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:adjustViewBounds="true"
        android:src="@drawable/ff" />

</LinearLayout>



'Android > 기본' 카테고리의 다른 글

Android Check Box  (0) 2012.04.28
Android 필드 박스  (0) 2012.04.28
Android 간단한 이벤트3  (0) 2012.04.28
Android 간단한 이벤트2  (0) 2012.04.28
Android 간단한 이벤트  (0) 2012.04.28
package com.commonsware.android.skeleton3;

import java.util.Date;
import java.text.SimpleDateFormat;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.util.Date;

public class NowRedux2 extends Activity{
										
	Button btn;
	SimpleDateFormat sf = new SimpleDateFormat("yyyy년 mm월 dd일 a HH:mm:ss");

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//main.xml 등록
		setContentView(R.layout.main);

		//button 객체 호출(이벤트 소스)
		btn=(Button)findViewById(R.id.button);
		
		//이벤트 소스와 이벤트 리스너가 구현된 객체를 연결
		//익명 내부 클래스 형태의 이벤트 처리
		btn.setOnClickListener(new View.OnClickListener() {
			//이벤트 핸들러
			public void onClick(View view){
				updateTime();
			}
		});
		updateTime();
	}
	private void updateTime(){
		btn.setText(sf.format(new Date()));
	}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />

</LinearLayout>



'Android > 기본' 카테고리의 다른 글

Android 필드 박스  (0) 2012.04.28
Android 이미지 넣기  (0) 2012.04.28
Android 간단한 이벤트2  (0) 2012.04.28
Android 간단한 이벤트  (0) 2012.04.28
android 기본 (TextView)3  (0) 2012.04.28
package com.commonsware.android.skeleton2;

import java.util.Date;
import java.text.SimpleDateFormat;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.util.Date;

public class NowRedux extends Activity implements View.OnClickListener{
										//이벤트 리스너
	Button btn;
	SimpleDateFormat sf = new SimpleDateFormat("yyyy년 mm월 dd일 a HH:mm:ss");

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//main.xml 등록
		setContentView(R.layout.main);

		//button 객체 호출(이벤트 소스)
		btn=(Button)findViewById(R.id.button);
		
		//이벤트 소스와 이벤트 리스너가 구현된 객체를 연결
		btn.setOnClickListener(this);
		updateTime();
	}
	//이벤트 핸들러
	public void onClick(View view){
		updateTime();
	}
	private void updateTime(){
		btn.setText(sf.format(new Date()));
	}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    
    <!-- fill_parent = 부모영역까지 채운다     wrap_parent =감싼다 -->
    <Button 
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>



'Android > 기본' 카테고리의 다른 글

Android 이미지 넣기  (0) 2012.04.28
Android 간단한 이벤트3  (0) 2012.04.28
Android 간단한 이벤트  (0) 2012.04.28
android 기본 (TextView)3  (0) 2012.04.28
android 기본 (TextView)2 - 객체를 직접입력하는 방법  (0) 2012.04.28
package com.commonsware.android.skelelton;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.util.Date;

public class Now extends Activity implements View.OnClickListener{
 Button btn;
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {    
     super.onCreate(savedInstanceState);
        
     btn= new Button(this);
     updateTime();
     setContentView(btn);
    }
    public void onClick(View view){
     updateTime();
    }
    private void updateTime(){
     btn.setText(new Date().toString());
    }
}





package com.comonsware.android.skeleton;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.util.Date;
import java.text.SimpleDateFormat;

public class Now extends Activity implements View.OnClickListener{
									//이벤트 리스너
	//이벤트 처리순서
	//1. 이벤트 리스너를 구현
	//2. 이벤트 소스와 이벤트 리스너가 구현된 객체 연결
	//3. 이벤트 핸들러를 구현
	Button btn;
	SimpleDateFormat sf = new SimpleDateFormat("yyyy년 MM월 dd일 HH:mm:ss");

	@Override
	public void onCreate(Bundle icicle){
		super.onCreate(icicle);
		
		//이벤트 소스
		btn = new Button(this);
		
		//이벤트 소스와 이벤트 리스너가 구현된 객체를 연결
		btn.setOnClickListener(this);
		
		//버튼의 내용으로 시간을 셋팅
		updateTime();
		
		//버튼(View)를 Activity(화면)에 등록
		setContentView(btn);
	}
	//이벤트 핸들러
	public void onClick(View view){
		updateTime();	//view : 이벤트가 발생한 이벤트 소스의 객체가 전달
						//Button -> View
	}
	private void updateTime(){
		btn.setText(sf.format(new Date()));
		
	}
}





'Android > 기본' 카테고리의 다른 글

Android 간단한 이벤트3  (0) 2012.04.28
Android 간단한 이벤트2  (0) 2012.04.28
android 기본 (TextView)3  (0) 2012.04.28
android 기본 (TextView)2 - 객체를 직접입력하는 방법  (0) 2012.04.28
android 기본 (TextView)  (0) 2012.04.28
package com.android.textview3;

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

public class TextViewDemo3 extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        //main.xml 등록
        setContentView(R.layout.main);
        
        //사전에 등록한id를 통해 TextView객체 호출
        TextView text =(TextView)findViewById(R.id.text);
        text.setBackgroundColor(Color.BLUE);
        text.setTextColor(Color.WHITE);
        
    }
}
/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */

package com.android.textview3;

public final class R {    //상속불가
    public static final class attr {
    }
    public static final class drawable {
        public static final int ic_launcher=0x7f020000;
    }
    public static final class id {
        public static final int text=0x7f050000;
    }
    public static final class layout {
        public static final int main=0x7f030000;
    }
    public static final class string {
        public static final int app_name=0x7f040001;
        public static final int hello=0x7f040000;
    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

</LinearLayout>



'Android > 기본' 카테고리의 다른 글

Android 간단한 이벤트2  (0) 2012.04.28
Android 간단한 이벤트  (0) 2012.04.28
android 기본 (TextView)2 - 객체를 직접입력하는 방법  (0) 2012.04.28
android 기본 (TextView)  (0) 2012.04.28
Android Program Structure  (0) 2012.04.28
package com.android.textview2;

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

public class TextViewDemo2 extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        //textView 객체생성  //android.widget.TextView import시켜줌
        TextView tv = new TextView(this);  //this -> TextViewDemo2 (Activity(화면) 상속)
        //문자열 입력
        tv.setText("텍스트 직접 입력");
        //생성된 TextView를 등록 
        setContentView(tv);
    }
}



'Android > 기본' 카테고리의 다른 글

Android 간단한 이벤트2  (0) 2012.04.28
Android 간단한 이벤트  (0) 2012.04.28
android 기본 (TextView)3  (0) 2012.04.28
android 기본 (TextView)  (0) 2012.04.28
Android Program Structure  (0) 2012.04.28
src/ com.adroid.text / TextViewDemo1.java
package com.android.textview3;

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

public class TextViewDemo3 extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        //main.xml 등록
        setContentView(R.layout.main);
        
        //사전에 등록한 id를 통해 Textview 객체 호출
        TextView text = (TextView)findViewById(R.id.text);
        text.setBackgroundColor(Color.GRAY);
        text.setTextColor(Color.WHITE);
        
    }
}

gen/com.adroid.text /R.java

/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */

package com.android.textview3;

public final class R {
    public static final class attr {
    }
    public static final class drawable {
        public static final int ic_launcher=0x7f020000;
    }
    public static final class id {
        public static final int text=0x7f050000;
    }
    public static final class layout {
        public static final int main=0x7f030000;
    }
    public static final class string {
        public static final int app_name=0x7f040001;
        public static final int hello=0x7f040000;
    }
}
res/ values/ string.xml
<!--?xml version="1.0" encoding="utf-8"?-->
<resources>

    <string name="hello">Hello World, TextViewDemo3!</string>
    <string name="app_name">03TextViewDemo3</string>

</resources>
res/ layout/ main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

</LinearLayout>



'Android > 기본' 카테고리의 다른 글

Android 간단한 이벤트2  (0) 2012.04.28
Android 간단한 이벤트  (0) 2012.04.28
android 기본 (TextView)3  (0) 2012.04.28
android 기본 (TextView)2 - 객체를 직접입력하는 방법  (0) 2012.04.28
Android Program Structure  (0) 2012.04.28

안드로이드 프로그램 구조


1) 뷰

뷰(View)는 사용자와 직접 상호작용을 할 UI를 의미한다.


2) 액티비티

보통 액티비티와 UI화면은 일대일 대응 관계를 갖고 시스템 혹은 사용자로부터 시작된 이벤트에 반응한다.


3) 인텐트  

컨포넌트간의 통신 수단이며 메시지에 대한 상세한 정보를 가진다. 예를 들면 주소록 목록 액티비티에서 편집 액티비티를 호출할 때 누구의 주소를 어떤 식으로 편집하라는 지시가 인텐트에 실려 전달된다.


4) 서비스  (백그라운드 기능)

서비스는 주로 백그라운드에서 돌아가는 실행코드로, 일단 실행되면 휴대폰이 꺼질 때까지 돌아간다. 서비스는 일반적으로 사용자 인터페이스가 없다.

예) MP3 플레이어 (음악을 듣다가 전화가 오면 전화를받고 통화후 mp3 재생 + 웹서핑하면서 mp3 음악듣기)


5) 브로드캐스트 리시버(BroadcastReceiver) (평상시 동작을 안하다가 특정이벤트에 반응)

만약 애플리케이션이 전화가 오거나 문자메시지 수신과 같은 이벤트를 받거나 반응하기를 원한다면 반드시 브로드캐스트 리시버로서 등록되어 있어야만 한다. 신호만 대기할 뿐 UI를 따로 가지지는 않으므로 신호 수신시 적절한 액티비티를 띄워 내용을 전달한다.


6) 컨텐트 프로바이더 (타 어플에서 데이터를 공유 : 단 보안이 필요한 데이터는 하면안됨)

다른 응용 프로그램을 위해 자신의 데이터를 제공한다. 안드로이드는 보안이 엄격하여 다른 응용프로그램의 데이터를 함부로 액세스 하지 못하도록 되어 있다. 응용프로그램 간에 데이터를 공유할 수 있는 합법적인 유일한 장치가 바로 콘텐트 프로바이더 이다.



안드로이드 사용 가능한 구성 요소

1) 데이터 보관

2) 네트워크

3) 멀티미디어

4) GPS

5) 전화서비스



크기 : 안드로이드에서 위젯의 패딩값과 같이 각종 크기를 표현할 때 사용


px : 화면의 기본단위 pixel, 해상도에 따라 크기가 달라짐

dp(dip) : 기기 기준 픽셀(device-dependent pixels), 인치당 160개의 점이 있는 디스플레이에서 1dp = 1px, dp단위로 지정하면 해상도만큼 길이가 늘어나 해상도에 상관없이 비슷한 크기로 보임

sp : 배율 기준 픽셀(scale-dependent pixels), sp는 사용자가 지정한 글꼴의 기본 크기에 비례해 크기가 변경


색상 xml

#RGB             #F00 (12비트 빨강)

#ARGB           #8F00 (12비트 투명도 50% 빨강)

#RRGGBB      #FF00FF (24비트 보라색)

#AARRGGBB  #FFFF0000 (24비트 불투명한 빨강)

                    #FF808080 (24비트 불투명한 회색)

                    #8000FF00 (24비트 투명도 50% 초록)

                    #80FF00FF (24비트 투명도 50% 보라색)

                    AA (Alpha) 투명도 (00..FF)

                    00은 100% 투명이고, FF는 완전 불투명을 의미

                    RR (Red) 빨강의 강도 (00..FF)

                    00은 빨강색이 하나도 없음을 의미

                    GG (Green) 초록의 강도 (00..FF)

                    BB (Blue) 파랑의 강도 (00..FF)


클래스에서는 *코드에서 색상 값은 정수(int)


이미지 포멧

  

      res/drawable-hdpi/ic_launcher.png   고해상도 이미지 폴더

      res/drawable-ldpi/ ic_launcher.png   저해상도 이미지 폴더

      res/drawable-mdpi/ ic_launcher.png   중해상도 이미지 폴더


PNG(Portable Network Graphics)           .png           권장됨(무손실)

JPG(Joint Photographic Experts Group    .jpg, .jpeg        권장되지는 않음(유손실)

GIF(Graphics Interchange Format)          .gif                  사용하지 않는 것이 좋음


주의점

blue.png <=> blue.jpg 충돌

*blue를 id로 사용하기때문에 확장자가 틀려도 충돌이난다.


Monk.jpg

*대문자를 불허한다!!! monk.jpg로 넣어야한다.


고해상도 아이콘크기 72*72

중해상도 아이콘크기 48*48

저해상도 아이콘크기 36*36


안드로이드 reference

http://developer.android.com/


뷰,텍스트뷰,레이블



안드로이드의 입력방법 2방법


1. 직접생성 입력

  ex) src/ com.android.textview3/ TextViewDemo2.java 에 바로 등록


2. main.xml에 작업한후 읽어오기 (권장)

  R클래스 - 자동으로 자원의 관리해서 연

  gen/ com.android.textview2/ R.java 에 (id:static final.)main.xml 객체들의 위치가 등록  

  src/ com.android.textview2/ TextViewDemo2.java 에서 R.id


'Android > 기본' 카테고리의 다른 글

Android 간단한 이벤트2  (0) 2012.04.28
Android 간단한 이벤트  (0) 2012.04.28
android 기본 (TextView)3  (0) 2012.04.28
android 기본 (TextView)2 - 객체를 직접입력하는 방법  (0) 2012.04.28
android 기본 (TextView)  (0) 2012.04.28
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:id="@+id/layout">
<!-- id가 있으면 findViewById()가 가능해진다. -->
    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="누르세요"/>
    
    <Button
        android:id="@+id/button2" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="누르세요"/>
    
</LinearLayout>
package com.gusfree;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

public class EventListenerActivity extends Activity {
	int i=1;
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		this.setContentView(R.layout.main);//main.xml을 화면으로!

		//1번 버튼을 누르면 a 실행해라 버튼을 찾자
		//2번 버튼을 누르면 b 실행해라

		//UpCasting 발생
		View view =this.findViewById(R.id.button1);
		//다운 캐스팅 시키자
		//xxx를 찾아라. xxx를 찾았다. 남자xxx;
		Button btn1 =(Button)view;

		final TextView tv=//메서드 안에 있는 지역 변수
				(TextView) this.findViewById(R.id.textView1);

		final LinearLayout layout=
				(LinearLayout)findViewById(R.id.layout);//LinearLayout을 찾는다
		
		//버튼 누르면 실행될 메서드 연결
		//set + OnClickListener
		
		btn1.setText("버튼1");
		btn1.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View arg0) {
				//버튼1을 클릭하면 이쪽으로 제어 이동
				if(i<10){
					i++;
				tv.setText("버튼1을 " +i +"번 눌렀다.");
				}else{
					tv.setText(i+"그만눌러라");
				}
				
				//0.00000~1.00000 까지의 실수를 아무거나 리턴
				double x =Math.random();
				int red =(int)(x*255);
				
				tv.setBackgroundColor(Color.RED);
				layout.setBackgroundColor(
						Color.rgb(red,50,70));//0~255
			}
		});

		//2번 버튼 누르면 "2번 버튼 눌렀다." 표시하기

		final Button btn2 =
				(Button) this.findViewById(R.id.button2);
		btn2.setText("버튼2");
		btn2.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				i--;
				tv.setText("버튼2을 " +i+"번 눌렀다.");
				tv.setBackgroundColor(Color.YELLOW);
				layout.setBackgroundColor(Color.RED);
			}
		});
	}
}



'Android > 2012.04월 강좌' 카테고리의 다른 글

3일차 1~45 까지 로또  (0) 2012.04.30
Android review  (0) 2012.04.30
2일차 이벤트  (0) 2012.04.27
2일차 Layout2  (0) 2012.04.27
2일차 Layout  (0) 2012.04.27

+ Recent posts