또자의 코딩교실

[스마트인재개발원] Android - 개요 본문

코딩공부/Android

[스마트인재개발원] Android - 개요

또자자 2021. 12. 24. 17:08

blog thumbnail

 

Android OS는 비독점 개발 틀랫폼을 지향하는 개발도구이다. 모바일 환경에서 인터넷을 더 많이 보급시키기 위해 만들어졌으며, 현재 4.1 Jelly bean 부터 11.0 R까지 많은 발전이 이루어 지고 있다.

 

안드로이드 개발 UI 화면에서 어떤 부분을 클릭하는지에 따라 동작들은 달라지는데
그런 기능들을 구현할 때 작성해야 하는 파일들에 대해 알아보자.


✅ java : 소스코드 및 model // xml : 디자인 레이아웃 및 개체 지정

java파일과 xml파일이 한쌍으로 생성되고 둘중의 하나가 없어서는 안된다.
묶여서 하나로 생성이 되는것을 확인할 수 있음.

 

✅ 안드로이드 화면에 관한 구성 : view를 구성하는 것들

  • resource의 역할 : 소리, 이미지, 폰트 등의 모든 자료들을 리소스라고 한다.
  • drawable : 이미지 등을 관리함.
  • layout : 보여지는 화면의 구성을 관리함. (activity_Main.xml : 디자인)
  • mipmap : 아이콘을 관리함. 해상도 별로 정리가 되어있음.
  • values : 화면디자인을 할때, colors에서 색을 지정해놓고 파일들을 통해서 색을 불러와서 쓰는것을 권장하고 있음.
  • themes.xml : title bar가 필요에 따라서 화면을 넓게 쓰기 위해서. bar를 없애거나 속성을 관리할 수 있음.

✅ Manifest 파일이란?

  • 화면을 실행할 때 쓰겠다는 정보들을 설정하고 권한의 설정정보등을 지정한다. 
    • 설치할 때의 아이콘, 앱의 이름, 실행될 Activity(설치하고 실행시키면 보여지는 화면)등을 수정할 수 있다.

✅ 위젯(Widjet)(=View):눈에 보여지는 것

  • View Group : 뷰를 담을 수 있는 그릇(=레이아웃)
    • 안드로이드에서 디폴트로 레이아웃을 제공하는 것 : 위젯을 배치하는 용도로 사용할 수 있다.

✅ 어떻게 자바코드와 xml파일은 서로 내용이 연동될까?

       ☑ XML파일의 객체를 Java 파일 내에서 변경하기 때문에.

Java 코드에서 변경하고 싶은 요소만 아이디값을 넣어주자.

Java파일 내 변수에 초기화 시켜주면(findViewbyId(R.id._____) 내용변경과 글자색, 배경색을 변경할 수 있다.

 

text에 사용하고자하는 view 타입에 대한 객체를 선언해서 아이디를 찾아와서
findViewById를 통해 데이터를 초기화시키는 작업을 진행하면 view를 얼마든지 변경할 수 있다.

이를 통해 화면에 배치된 TextView에 대한 정보를 tvMsg변수에 초기화 시킬 수 있다.


Onclick시 텍스트를 변경하는 메소드 설계
view라는 타입의 view 매개변수를 설정하여 클릭이라는 이벤트가 발생했을경우 해당하는 View에 대한 정보를 넘겨주고 반환함. 이때 넘어오는 데이터를 받아줄 수 있는 매개변수가 없다면 오류가 남.

더보기

안드로이드는 모든 이용하고자 하는 view는 모두 public static final의 형태로 객체가 생성되어있음
R의 의미 : class. R이라는 클래스 안에 모든 안드로이드에서 입력하는 view나 레이아웃들을 정의함

다음은 기본적인 안드로이드 개발 java 코드이다.

public class MainActivity extends AppCompatActivity {

    TextView tvMsg; //객체 선언

    /*액티비티(화면)을 생성하는 메소드*/
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //레이아웃 폴더에 만들어진 값들이 상수로 생성되어있음
        
        tvMsg = findViewById(R.id.tvMsg); //객체 선언
    }

    //
    public void btnChange (View v){
        tvMsg.setText("버튼으로 내용 바꾸기 성공!🎉");
    }

    public void btnbc (View v){
        tvMsg.setText("글자색과 배경색 바꾸기 성공!✨");
        tvMsg.setBackgroundColor(Color.parseColor("#ff867f"));
        tvMsg.setTextColor(Color.parseColor("#FF6200EE"));
    }


    //화면 배경색 변경해보기!
    //대상 : ConstraintLayout
    public void btnbg (View v){
        //ConstraintLayout 객체 생성
        ConstraintLayout cLayout =findViewById(R.id.bg);
        //배경색 변경 메소드 호출
        cLayout.setBackgroundColor(Color.parseColor("#FFBB86FC"));
    }


    //EditText(PlainText) 객체 생성
    public void edtMsg2 (View v){
        //사용자가 입력한 텍스트를 변수에 저장
        EditText edtMsg = findViewById(R.id.edtMsg);
        String msg = edtMsg.getText().toString(); //text를 고칠때 문자를 가져와 문자열 데이터로 바꾸는 과정 //중요
        //TextView에 값 출력
        tvMsg.setText(msg);
    }

안드로이드 가상머신 구동

Comments