위와 같이 progressbar를 만들고 max설정해준다.

progressBar.setProgress(1);

 

 

setProgress안에 0부터 max까지의 자연수를 넣어주면된다.

주요 함수 4개에 대해 알아보자

onCrate함수:  Activity 가 생성되면 가장먼저 호출 되는 callback 함수

onResume함수: 사용자가 응용프로그램과 상호작용을 할 수 있는 상태에 호출되는 함수

onPause함수: Activity가 중지된 상태에 호출되는 함수

onDestory함수: 시스템이 Activity를 종료하기 직전에 호출 되는 callback 함수

예제 코드

public class MainActivity extends AppCompatActivity {

    public static final String TAG = MainActivity.class.getSimpleName();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.e(TAG,"onCreate");
        // 액티비티가 생성되는 중
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.e(TAG,"onRestart");
        //액티비티가 중단되었다가 다시 시작
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.e(TAG,"onStart");
        //액티비티가 화면에 나타나기 시작
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.e(TAG,"onResume");
        //액티비티가 화면에 나타나고 상호작용이 가능해짐
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.e(TAG,"onPause");
        //다른 액티비티가 시작되려함, 이 액티비티는 중단되려하고 백그라운드로 들어갑니다.
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.e(TAG,"onStop");
        //액티비티가 더 이상 화면에 나타나지 않음,중단된 상태
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.e(TAG,"onDestroy");
        //액티비티가 종료되려고 합니다.
    }
}

숫자를 넣을경우 빈따옴표와 더해서 처리해주면 문자로 더해져서 출력된다.

리니어 레이아웃은 horizontal 과 vertical이 있다.

horizontal은 가로로 

vertical은 세로로 정렬한다.

layout_weight는 숫자와 비례해서 크기가 커진다.

<EditText
        android:id="@+id/editName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="text"
        android:maxLines="3"
        android:hint="Name"
        android:imeOptions="actionNext"
        android:textSize="26sp"
        app:layout_constraintBottom_toTopOf="@+id/button"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.497"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.351" />

inputType에서 텍스트 유형

maxLine 최대 라인수

hint 회색 글씨의 힌트

imeOptions 버튼 옵션

text 텍스트를 바꾼다.

textColor 텍스트 색을 바꾼다.

background 배경을 바꾼다.

layout_margin 바깥쪽으로 마진을 준다

visibility 보이게 할지 말지 정한다.

padding 안쪽으로 패딩 영역을 만든다.

gravity 정렬한다.

ui위젯을 누르고 위에속성에서 해당 항목을 검색하여 설정할 수 있다.

https://github.com/daimajia/AndroidViewAnimations

 

GitHub - daimajia/AndroidViewAnimations: Cute view animation collection.

Cute view animation collection. Contribute to daimajia/AndroidViewAnimations development by creating an account on GitHub.

github.com

위의 라이브러리를 적용할려 한다.

build.gradle의 dependencies 항목에 implementation을 적어준다.

적어줬으면 sync now를 클릭한다. 그러면 라이브러리 관련해서 자동완성이 된다.

package com.minui.diceapp;

import androidx.appcompat.app.AppCompatActivity;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

import java.util.Random;

public class MainActivity extends AppCompatActivity {

    ImageView imgDice1;
    ImageView imgDice2;
    MediaPlayer mp;

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

        // 화면에서 만든 버튼과 이미지들을 가져온다.
        Button button = findViewById(R.id.button);
        imgDice1 = findViewById(R.id.imgDice1);
        imgDice2 = findViewById(R.id.imgDice2);
        // 사운드 파일도 가져온다.
        mp = MediaPlayer.create(this, R.raw.dice_sound);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.i("MyDiceApp","버튼 눌러짐!");

                // 0. 사운드를 튼다.
                mp.start();

                // 1. 랜덤으로 숫자를 하나 가져온다.
                Random random = new Random();
                int number = random.nextInt(6);
                int number2 = random.nextInt(6);

                Log.i("MyDiceApp","number : " + number + ", number2 : " + number2);

                // 2. 그 숫자로 화면의 이미지를 바꿔준다.
                if (number == 0) {
                    imgDice1.setImageResource(R.drawable.dice1);
                } else if (number == 1) {
                    imgDice1.setImageResource(R.drawable.dice2);
                } else if (number == 2) {
                    imgDice1.setImageResource(R.drawable.dice3);
                } else if (number == 3) {
                    imgDice1.setImageResource(R.drawable.dice4);
                } else if (number == 4) {
                    imgDice1.setImageResource(R.drawable.dice5);
                } else if (number == 5) {
                    imgDice1.setImageResource(R.drawable.dice6);
                }

                if (number2 == 0) {
                    imgDice2.setImageResource(R.drawable.dice1);
                } else if (number2 == 1) {
                    imgDice2.setImageResource(R.drawable.dice2);
                } else if (number2 == 2) {
                    imgDice2.setImageResource(R.drawable.dice3);
                } else if (number2 == 3) {
                    imgDice2.setImageResource(R.drawable.dice4);
                } else if (number2 == 4) {
                    imgDice2.setImageResource(R.drawable.dice5);
                } else if (number2 == 5) {
                    imgDice2.setImageResource(R.drawable.dice6);
                }
            }
        });
    }
}

멤버변수에서 UI위젯들을 정의하고 액티비티 클래스에서 findViewById 함수를 통해 위젯들을 가져온다.

버튼의 setOnClickListener함수와 이 함수의 파라미터인 view.OnClickListener의 onClick함수에 버튼 눌렀을 시

동작할 내용을 작성한다.

package com.example.myapplication;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        TextView tv0 = findViewById(R.id.TextView);
        Log.i("info", "Textview tv0 Setting");
    }
}

안드로이드에서는 android.util.Log 클래스를 사용해서 로그를 남길 수 있다.

View > Tool Windows > Logcat을 클릭한다.

사진과 같은 경로에서 themes.xml 파일에 style 에서 NoActionBar로 바꿔준다.

+ Recent posts