프로그래밍

[Do it! 안드로이드 앱] 자바) 시크바와 프로그레스바 보여주기 본문

안드로이드/안드로이드 스튜디오

[Do it! 안드로이드 앱] 자바) 시크바와 프로그레스바 보여주기

시케 2022. 5. 18. 14:37
728x90
반응형

도전과제 06

 

실행화면

 

디자인

 

프로젝트 설명

시크바와 프로그레스바를 표시하고 시크바의 값을 바꾸었을 때 프로그래스바의 값도 바뀌도록 한다.

1. 화면에 시크바와 프로그레스바, 그리고 입력상자를 배치합니다.
2. 시크바의 값을 바꾸면 프로그레스바의 값도 바뀌도록 합니다.
3. 시크바의 값을 바꾸었을 때 그 값이 입려상제에 표시되도록 합니다.
4. 프로그래스바는 막대형을 사용합니다.

 

xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    android:gravity="center">

    <SeekBar
        android:id="@+id/Seek"
        android:layout_width="match_parent"
        android:layout_height="75dp" />

    <ProgressBar
        android:id="@+id/Prog"
        android:layout_width="match_parent"
        android:layout_height="75dp"
        style="@style/Widget.AppCompat.ProgressBar.Horizontal"/>

    <TextView
        android:id="@+id/Txt"
        android:layout_width="300dp"
        android:layout_height="75dp"
        android:hint="시크바의 진행도"
        android:textAlignment="center"
        android:gravity="center_horizontal" />

</LinearLayout>

 

java

package com.sample.doitmission_06;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.SeekBar;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    TextView txt;

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

        SeekBar seek = findViewById(R.id.Seek);
        ProgressBar prog = findViewById(R.id.Prog);
        txt = findViewById(R.id.Txt);

        seek.setProgress(0);
        prog.setIndeterminate(false);
        prog.setProgress(seek.getProgress());

        seek.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
                prog.setProgress(seek.getProgress());
                txt.setText(String.valueOf(seek.getProgress()));
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
                prog.setProgress(seek.getProgress());
                txt.setText(String.valueOf(seek.getProgress()));
            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                prog.setProgress(seek.getProgress());
                txt.setText(String.valueOf(seek.getProgress()));
            }
        });

    }
}
728x90
반응형
Comments