Android

[Android] 1주차 스터디 (액티비티, Button, ImageView, TextView, Toast)

poppy 2020. 9. 3. 11:36
반응형

1주차에서는 안드로이드의 전반적인 모습과 주요 기능 몇 가지를 살펴보았습니다!

 

먼저, 액티비티란?

화면 단위 하나라고 말할 수 있습니다 앱을 실행시켰을 때 화면 하나를 액티비티라고 합니다.

 

activity_main.xml 살펴보기

View 부분 화면 구성

View 부분을 이렇게 구성하였습니다! Button 하나, ImageView 하나, TextView 하나로 구성되어 있습니다.

 

먼저 Button은 말 그대로 버튼을 의미합니다. Button에 설정한 속성을 살펴보겠습니다.

android:id="@+id/btn_toast"  버튼의 id 값을 설정하는 것 입니다. btn_toast 부분이 id값을 의미하며 원하는 대로 바꿀 수 있습니다.

toast 메세지를 띄우는 버튼이라는 의미로 btn_toast라고 해주었습니다.

android:layout_width="wrap_content" android:layout_height="wrap_content"  버튼의 높이와 너비를 설정해주는 것 입니다.

"wrap_content" 는 말 그래로 내용을 감싸는 크기이고, "match_parent"는 화면에 맞춰 최대한 크기를 키우겠다는 의미입니다.

android:text="Button"  버튼에 쓰여져 있는 텍스트를 설정해주는 것 입니다. "Button" 부분이 텍스트를 의미하며 원하는 대로 바꿀 수 있습니다.

 

ImageView는 이미지를 보여주는 것을 의미합니다. ImageView 도 버튼처럼 id와 높이와 너비를 설정해주는 것은 같습니다.android:background="@drawable/disney" 보여줄 이미지를 설정해주는 것 입니다. "@drawable/disney" 은 drawable 폴더 안의 disney 라는 파일을 이미지로 쓰겠다는 의미입니다. 이미지 파일은 보통 drawable 폴더 안에 넣으며 disney 파일 말고 다른 이미지 파일을 넣을 수 있습니다.

 

TextView는 텍스트를 보여주겠다는 의미입니다. TextView도 버튼처럼 id와 높이와 너비, 텍스트를 지정해주는 것은 같습니다.android:textSize="20sp" 텍스트 크기를 원하는 대로 설정할 수 있습니다. 버튼의 텍스트도 이 문장을 넣으면 텍스트 크기를 바꿀 수 있습니다.

 

MainActivity.java 살펴보기

public class MainActivity extends AppCompatActivity {

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

        Button btn1 = (Button)findViewById(R.id.btn_toast);
        final ImageView iv = (ImageView)findViewById(R.id.imageView);

        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(getApplicationContext(), "안녕하세요.", Toast.LENGTH_LONG).show();
                iv.setVisibility(View.INVISIBLE);
            }
        });

        iv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(getApplicationContext(), "카디 7기", Toast.LENGTH_LONG).show();
            }
        });
    }
}

setContentView(R.layout.activity_main); MainActivity.java의 껍데기를 연결시켜주는 부분입니다. 이 파일의 껍데기는 activity_main 이므로 R.layout.activity_main 이라고 값을 넣어줍니다. 다른 파일일 경우 activity_main 부분을 바꿔주면 됩니다.

 

Button btn1 = (Button)findViewById(R.id.btn_toast); 버튼을 연결해주는 부분입니다. 버튼을 선언하고 View에서 버튼의 id 값을 가져와 버튼을 연결해줍니다. "Button 버튼이름 = (Button)findViewById(R.id.id값)" 으로 설정해주면 되고, 버튼말고 다른 것들도 연결할 수 있습니다. 그럴 경우 Button -> ImageView / TextView 등등 으로 바꾸어주면 됩니다.

 

버튼을 눌렀을 때 동작을 수행하는 부분이 btn1.setOnClickListener 입니다. 실제 동작하는 부분은 onClick 안에 넣어주면 됩니다.

Toast.makeText(getApplicationContext(), "안녕하세요.", Toast.LENGTH_LONG).show(); 토스트 메세지를 띄운다는 의미입니다. 토스트 메세지는 잠깐 떴다가 사라지는 메시지를 말합니다. "Toast.makeText(getApplicationContext(), 띄울 텍스트 , 토스트 메세지를 띄울 시간).show();" 으로 설정해주면 됩니다. "안녕하세요"는 안녕하세요라는 텍스트를 띄운다는 의미입니다. Toast.LENGTH_LONG 은 토스트 메세지를 긴 시간 띄우겠다는 의미입니다. Toast.LENGTH_SHORT 라고 값을 주면 토스트 메세지를 짧게 띄울 수 있습니다.

 

iv.setVisibility(View.INVISIBLE); 이미지를 안보이게 하겠다는 의미입니다. View.INVISIBLE 으로 값을 주어서 iv인 ImageView를 안보이게 설정하는 것입니다. 위의 코드를 보면 iv 클릭 시 토스트 메시지를 띄우겠다는 코드가 있는데 버튼을 눌러서 iv 가 화면에서 사라진 뒤 iv가 있던 자리를 클릭해도 토스트 메시지가 나오지 않습니다. 그 이유는 iv 가 화면에서 아예 숨겨졌기 때문에 클릭을 해도 반응하지 않기 때문입니다. 

반응형