Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 안드로이드
- #안드로이드 #안드로이드 앱 프로그래밍 #모바일 개발자
- #안드로이드 #안드로이드 앱프로그래밍 #모바일 개발 #키패드 제어하기
- 안드로이드 앱개발.
- 안드로이드 스튜디오
- #안드로이드 프로그래밍
- #안드로이드 앱프로그래밍
- 마스크 효과 #안드로이드 프로그래밍
- #안드로이드 스튜디오 #안드로이드 앱개발 #안드로이드 카드뷰
- 안드로이드 #데이터베이스 #안드로이드 앱프로그래밍
Archives
- Today
- Total
모바일 개발을 잘하고 싶은 안드로이드 앱개발자
안드로이드 스튜디오 시크바 사용하기 본문
activity_main.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"
android:orientation="vertical"
tools:context=".MainActivity" >
<SeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100" />
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="변경된 값"
android:textSize="30sp" />
</LinearLayout>
최상위 레이아웃인 constraintlayout을 LinearLayout으로 변경 후에 orientation 속성 값을 vertical로 설정합니다.최상위 레이아웃constraintlayou에 있던 텍스트뷰를 삭제히거 필레트에서 Widgets 폴더 안에 SeekBard를 화면에 끌어다 놓습니다
시크바 아래쪽에 텍스트뷰를 하나 추가하고 '변경된 값'이라고 글자를 수정합니다.텍스트뷰의 layout_margin 속성 중 top 속성 값을 20dp로 입력하고 textSize 속성 값을 30dp로 입력합니다.
MainActivity.java
package org.techtown.seek;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.WindowManager;
import android.widget.SeekBar;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
SeekBar seekBar = findViewById(R.id.seekBar);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
setBrightness(i);
textView.setText("변경된 값:"+i);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
}
private void setBrightness(int value){
if (value < 10){
value = 10;
} else if (value > 100) {
value = 100;
}
WindowManager.LayoutParams params = getWindow().getAttributes();
params.screenBrightness = (float) value / 100;
getWindow().setAttributes(params);
}
}
getWindow 메서드를 사용해 참조한 객체의 윈도우 관련 정보를 getAttributes로 확인하거나 새로 설정할 수 있습니다.
화면 밝기를 설정하는 속성은 screenBrightness 속성이며 getAttributes 메서드로 참조한 속성 정보에 새로운 값을 지정한 후 getAttributes 메서드를 사용해서 설정합니다 시크바에서 설정한 리스너는 시크바의 값이 바뀔 떄마다 onProgressChanged메서드가 호출되고 메서드 안에서 화면 밝기를 지정하는 setBrightness 메서드를 호출한 후 텍스트뷰에 현재 밝기 수준을 텍스트로 표시해줌니다