Programming Language/Android Programming

프로그램 설치 및 기본 사용법

D4tai1 2018. 8. 28.

1. 각 파일에 대한 설명

1) app\manifests\AndroidManifest.xml = 환경설정파일

2) java\com.example.d4tai1.20180827a_1\MainActivity = 자바파일

3) res\layout\activity_main.xml = 백그라운드 엑티비티(초기값)

 

+) 참고 : 안드로이드 스튜디오의 버전정보

 

 

2. activity_main.xml 파일내용 수정

[1] LinearLayout속성으로 변경

"<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android""

-> "LinearLayout" 으로 변경한다.

 - 그러면 아래와 같이 소스내용이 바뀐다.

 

[변경된 activity_main.xml의 소스]

 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android=http://schemas.android.com/apk/res/android

xmlns:app=http://schemas.android.com/apk/res-auto

xmlns:tools=http://schemas.android.com/tools

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MainActivity"

tools:layout_editor_absoluteY="25dp">

 

<Button

android:id="@+id/button2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_weight="1"android:text="Button" />

 

<Buttonandroid:id="@+id/button3"

android:layout_width="wrap_content"

android:layout_height="wrap_content"android:layout_weight="1"

android:text="Button" />

</LinearLayout>

 

 

 

3. layout_width, layout_height의 속성

1) match_parent

 - 자신의 부모에 폭이나 높이를 맞춘다.(최대치)

2) wrap_content

 - 사이즈만큼, 적절하게 맞춘다.

 

+) 예시

 이 사진에 나오는 위젯의 속성은 가로는 최대, 세로는 적당하게 맞춘다.

 

4. orientation

1) 우측 속성 탭의 LinearLayout의 orientation이 none이면 horizontal과 같다.

 + horizontal는 가로를 의미하고, vertical은 세로를 의미한다.

 

5. background와 textcolor

1) background

[1] 버튼을 클릭 후 변경이 가능하다.

 

2) textcolor

[1] Attributes 우측에 화살표버튼 누르면 전체 속성을 볼 수 있다.

[2] 그 중 textcolor의 오른쪽에 ...을 누르고 글자색을 결정한다.

  

 

6. button 동작

[1] buttonidbtnOne로 변경한다.

 - button 클릭 후 우측 속성에서 id 값 변경.

 

[2] activity_main.xml의 버튼을 가져와서 사용하기 위해서는 선언을 미리 해야한다.

- Button button1; //이런식으로(art+enter -> import class [import문 자동추가])

package com.example.d4tai1.pro20180827a_2;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.widget.Button;

 

public class MainActivity extends AppCompatActivity {

Button button1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

 

button1 = (Button)findViewById(R.id.btnOne);

// activity_main.xml에있는위젯을MainActivity.java에서가리키게된다.

//findViewByIdR 클래스를접근한다.

button1.setText("clickme");

}

} 

 

[3] setContentView(R.layout.activity_main);

- R classlayoutactivity_main.xml 이 먼저 출력된다.

- 검색은 좌측상단을 Packages로 해놓고 검색할 수 있다.

[4] button1 = findViewById(R.id.btnOne);

- 형식 -> 위젯변수 = (위젯형) findViewById(R.id.위젯id);

- button1 객체에 R.id.btnOne를 찾아서 넣어준다.

- R class에 모든 리소스가 들어있다.(RResource)

- findViewById()R 클래스를 접근한다.

- id 값으로 view를 찾는다.

 

[5] button1.setText("clickme");

 

- 버튼의 이름을 "clickme로 변경

 

 

 

 

 

[6] paddinglayout_margin

- padding : 위젯 내에서 상하좌우 여백 조절

 

- layout_margin : 레이아웃 내에서 상하좌우 여백 조절

 

 

[결과]

- 좌 20, 우 20, 상 30

 

 

+. 문제점

[1] Available Virtual Devices에서 pixel API 28을 사용하지만 간혹 디자인모드에서 나오지 않을 경우가 있다.

[2] 이 경우 안드로이드 스튜디오 내 Gradle Scripts\build.gradle(Module: app) 파일을 열고 일부 내용을 수정한다.

- 다운그레이드(주황색 글자로 수정) 후 rebuild project

android {

compileSdkVersion 27

defaultConfig {

applicationId "com.example.d4tai1.pro20180827a_3"

minSdkVersion 15

targetSdkVersion 27

versionCode 1

versionName "1.0"

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

}

 

dependencies {

implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation 'com.android.support:appcompat-v7:27.0.2'

implementation 'com.android.support.constraint:constraint-layout:1.1.2'

testImplementation 'junit:junit:4.12'

androidTestImplementation 'com.android.support.test:runner:1.0.2'

androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

}

 

 

'Programming Language > Android Programming' 카테고리의 다른 글

메뉴버튼  (0) 2018.10.09
계산기, 예약  (0) 2018.09.18
레이아웃  (0) 2018.09.14
체크박스, 스위치, 토글, 라디오  (0) 2018.09.04
계산기  (0) 2018.09.03

댓글