안드로이드
안드로이드
먼저 안드로이드의 기본구조를 보자.
안드로이드는 리눅스 커널 기반으로 구글에서 제작했다.
안드로이드 의 기본구조 시스템을 보자면
리눅스 커널, 라이브러리와 안드로이드 런타임, 어플리케이션 프레임워크, 어플리케이션
으로 총 4단계구조이다.
안드로이드 구조 시스템에서 우리는 어플리케이션 단계를 사용한다.
기본 레이아웃(Layout)
LinearLayoutExmple
2. ConstraintLayout
ConstraintLayout 은 안드로이드 스튜디오 2.3 부터 제공
1.향상된 레이아웃 디자이너와 함께 사용할 수 있는 레이아웃.
2.앱에서 화면 크기에 상관없는 반응형 앱을 만들기 위해서 사용된다.
3.위치를 상,하,좌,우 정해줘야 한다는 특징 있다.
3. RelativeLayout
1.상대적 위치에 기반하여 뷰들을 배치하는 레이아웃
2.RelativeLayout은 중첩된 형태의 뷰구성이 가능하기 때문에 사용자 인터페이스를 만들 때 굉장히 유용하다.
안드로이드 프로그래밍
프로젝트 Activity 는 Empty Activity
※ 프로젝트를 생성하면 xml + java code 가 각각 생긴다.
처음으로 만든 안드로이드 앱
먼저 처음수업을 듣고 만든 앱은 색깔버튼을 터치 할시 Tost.makeText 로 색깔을 출력해주는 앱이다.
먼저 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"
android:orientation="vertical"
android:weightSum="4"
tools:context=".MainActivity">
<Button
android:id="@+id/redButton"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/holo_red_light"
android:layout_weight="1"/>
<Button
android:id="@+id/blueButton"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/holo_blue_light"
android:layout_weight="1"/>
<Button
android:id="@+id/greenButton"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/holo_green_light"
android:layout_weight="1"/>
<Button
android:id="@+id/blackButton"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black"
android:layout_weight="1"/>
</LinearLayout>
LinearLayout은 선형 레이아웃으로 orientation을 vertical로 설정
그래서 수직으로 뷰가 구성된다.
LinearLayout 을 사용했고 버튼 4개를 만들었다.
그리고 <Button 내용 하고 닫아줄때 />을 사용해줬다.
그리고 각각의 버튼에 아이디 값을 줬다.
버튼의 각각 background 색깔을 정해줬다.
그리고 넓이, 높이를 설정 해줬다.
버튼의 비율은 1을 차지해줬다.
자 이제 java code 를 보자
package com.example.qlsl7.layoutexmple;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private Button redButton;
private Button blueButton;
private Button greenButton;
private Button blackButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
setListeners();
}
private void init(){
redButton = findViewById(R.id.redButton);
blueButton = findViewById(R.id.blueButton);
greenButton = findViewById(R.id.greenButton);
blackButton = findViewById(R.id.blackButton);
}
private void setListeners(){
redButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getApplicationContext(), "빨간색", Toast.LENGTH_SHORT).show();
}
});
blueButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getApplicationContext(), "파란색", Toast.LENGTH_SHORT).show();
}
});
greenButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getApplicationContext(), "초록색", Toast.LENGTH_SHORT).show();
}
});
blackButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(getApplicationContext(), "검정색", Toast.LENGTH_SHORT).show();
}
});
}
}
먼저 public class 인 MainActivity class 에서 4가지의 색깔 버튼인 private 변수 4개 를 생성해준다.
그리고 각각 버튼의 아이디를 찾아줄 private init 메소드를 정의해준다.
그리고 setListener메소드에서는 각각의 버튼을 누르면 해당 메소드를 실행시켜 지정된 메시지를 출력해주고 있습니다.
Toast는 잠시 보여주는 기능을 한다 여기서는 해당 메시지를 잠시 출력해 보여주고
여기서 .getApplicationContext는 자기를 가리키고
"내용" 을 LENGTH_SHORT로 1.5초 띄어준다.
그리고 .show(); 를 해줘야 유저에게 메세지가 보입니다.
그래서 빨간색 버튼을 눌르면 빨간색 이 보이듯이
각각의 버튼을 누르면 각각버튼 의 색깔이 보이게 되는 앱입니다.
첫 수업이지만 안드로이드 개발의 흥미를 가지게 된 정말 재밌던 수업이였던것 같습니다.
앞으로 좀더 열심히 해서 제가 만들고 싶은 앱을 만들고 싶습니다.
'Android > Android ( JAVA )' 카테고리의 다른 글
Android (여섯번째 수업 - RecyclerView) (0) | 2018.09.17 |
---|---|
Android (다섯번째 수업 - Custom ListView 와 adapter pattern) (0) | 2018.08.25 |
Android (네번째 수업 - Glide , Ratingbar) (0) | 2018.08.14 |
Android (세번째 수업 - 안드로이드 Design Support Library( Snackbar, AlertDialog )) (0) | 2018.08.09 |
Android (두번째 수업 - 안드로이드 인텐트 / 인텐트 콜백(Intent Callback)) (0) | 2018.07.27 |