시크바와 프로그레스바 보여주기
Do it! 안드로이드 앱 프로그래밍
(도전Mission _06)
시크바와 프로그래스바를 표시하고 시크바의 값을 바꾸었을 때
프로그래스바의 값도 바뀌도록 만들어 보시오
① 화면에 시크바와 프로그래스바, 그리고 입력상자를 배치합니다.
② 시크바의 값을 바꾸면 프로그레스바의 값도 바뀌도록 합니다.
③ 시크바의 값을 바꾸었을 때 그 값이 입력상자에 표시되도록 합니다.
④ 프로그레스바는 막대형을 사용합니다.
※ 참고할 점
시크바의 값이 바뀔 때 그 값을 알려주는 콜백 메서드를 사용합니다
시크바의 값이 바뀔 때 그 값을 프로그레스바와 입력상자에 설정합니다.
[ CODE ]
<activity_main.xml>
<?xml version="1.0" encoding="UTF-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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" >
<SeekBar
android:id="@+id/seekBar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="84dp"
android:max="100"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:max="100"
android:layout_marginTop="72dp"
app:layout_constraintTop_toBottomOf="@+id/seekBar"
app:layout_constraintHorizontal_bias="0.498"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
style="?android:attr/progressBarStyleHorizontal"/>
<EditText
android:id="@+id/editText"
android:layout_width="100dp"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="100dp"
app:layout_constraintTop_toBottomOf="@+id/progressBar"
android:textSize="40sp"
android:text="0"
android:inputType="textPersonName"
android:gravity="center"
android:ems="10"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<MainActivity.java>
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.SeekBar;
public class MainActivity extends AppCompatActivity {
ProgressBar progressBar;
EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressBar = findViewById(R.id.progressBar);
editText = findViewById(R.id.editText);
SeekBar seekBar = findViewById(R.id.seekBar);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
progressBar.setProgress(progress);
editText.setText(String.valueOf(progress));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
}
}
<실행화면>
2023.09.06 - [STUDY/안드로이드] - [안드로이드앱] 두 종류의 버튼 모양 만들기
'STUDY > 안드로이드' 카테고리의 다른 글
[Android] Do it! 안드로이드 도전08세 개 이상의 화면 만들어 전환하기 (0) | 2023.09.16 |
---|---|
[안드로이드앱] 로그인 화면과 메뉴 화면 전환하기 (46) | 2023.09.13 |
[안드로이드앱] 두 종류의 버튼 모양 만들기 (66) | 2023.09.06 |
[안드로이드앱] SMS 입력화면 만들고 글자의 수 표시하기 (66) | 2023.09.02 |
[Do it!안드로이드앱 프로그래밍] 도전미션_03 (29) | 2023.09.01 |