티스토리 뷰
시크 바와 프로그레스 바와 스피너 다이얼로그 프로그레스 3개를 다뤄보겠습니다
일단 화면을 보여드리겠습니다
위에서부터 간단하게 설명드리겠습니다
프로그레스 바와 텍스트뷰를 수정하는 시크 바
수치를 나타내 주는 프로그레스 바
수치를 나타내 주는 텍스트뷰
누르면 텍스트와 프로그레스 바가 1 증가하는 버튼
스핀 다이얼로그 프로그레스를 호출해주는 버튼
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="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@+id/progressBar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
app:layout_constraintBottom_toTopOf="@+id/button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/progressBar" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffffff"
android:onClick="start"
android:text="막대증가"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/progressBar" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffffff"
android:onClick="start2"
android:text="원 시작"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button" />
</androidx.constraintlayout.widget.ConstraintLayout>
프로그레스 바에 보시면 max가 있는데 프로그레스 바의 최대 수치라고 보시면 됩니다
설명할 게 딱히 없어 보여 바로 java코드를 보여드리겠습니다
package com.ehsehsl.osz;
import androidx.appcompat.app.AppCompatActivity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.SeekBar;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
ProgressBar progressBar; // 프로그레스 바
ProgressDialog dialog; // 프로그레스 다이얼로그
TextView textView;
int i = 0; // 프로그레스바 수치
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SeekBar seekBar = findViewById(R.id.seekBar);
progressBar = findViewById(R.id.progressBar);
progressBar.setIndeterminate(false); // false : 한정된 / true : 불확정
textView = findViewById(R.id.textView);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // 바뀔때마다 적용
i = progress;
progressBar.setProgress(i); // 프로그레스바 변경
textView.setText(String.valueOf(i)); // 텍스트뷰 변경
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
}
public void start(View view) { //프로그레스바
i++;
progressBar.setProgress(i); // 프로그레스바 설정
textView.setText(String.valueOf(i)); // 텍스트뷰 변경
}
public void start2(View view) { // 스핀하는 프로그레스 다이얼로그
dialog = new ProgressDialog(MainActivity.this);
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); // 다이얼로그 스타일 설정
// dialog.setCancelable(false); // 화면 밖 터치해도 종료되지 않게
dialog.setMessage("데이터를 확인하는 중입니다."); // 메세지
dialog.show(); // 다이얼로그 시작
// dialog.dismiss(); // 다이얼로그 종료
}
}
java코드도 주석을 다 달아놔서 그냥 보면 이해가 되실듯합니다
함수 start2에 주석 처리한 두줄은 예제용이 아닌 실제 사용할 때 완료가 되면 종료가 되게 하고 완료가 안됐는데 닫는 걸 방지하게 쓰시면 될듯합니다
'안드로이드 네이티브' 카테고리의 다른 글
안드로이드 디바이스에 데이터 저장하기 SharedPreferences (0) | 2020.09.09 |
---|---|
안드로이드 여러 화면 만들고 화면 이동하기 (0) | 2020.09.08 |
안드로이드 뒤로 가기 버튼 클릭하면 안내창 띄우기(다이얼로그) (0) | 2020.09.07 |
안드로이드 토스트 메시지(짧은 안내 메시지) 사용과 좌표 변경 (0) | 2020.09.07 |
안드로이드 findViewById 변수로 설정하기 (0) | 2020.09.06 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 앱개발
- 코틀린
- 구구단공부
- 안드로이드네이티브
- inputbox
- 자동답장
- 카카오봇
- 매크로
- 구구단
- loop
- 안드로이드클라이언트
- 안드로이드
- 카카오톡
- 안드로이드앱
- 오토핫키
- 구구단앱
- 로또
- 챗봇
- 채팅
- 자바스크립트
- 플러터
- sendinput
- 안드로이드스튜디오
- Flutter
- 안드로이드앱개발
- JS
- MouseMove
- 명언
- 노래
- 구구단어플
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함