Seekbar 사용자 정의 스타일 및 사용
10946 단어 안드로이드 컨트롤 레이아웃
"@+id/seekBar"
style="@style/Widget.AppCompat.SeekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxHeight="32dp"
android:minHeight="32dp"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:max="100"
android:progress="80"
android:scaleType="center" />
스타일 속성 설정 seekbar의 스타일 minHeight 속성 설정 seekbar의 높이paddingTop,paddingBottom은 seekbar의 터치 영역을 넓힐 수 있습니다 seekbar의layoutHeight 속성이 wrap으로 설정되지 않은 경우콘텐츠, 그러면thumb에 표시되지 않습니다
진도표의 스타일을 설정하려면 속성을 추가해야 합니다 android:progressDrawable="@drawable/seekbarStyle"에서 seekbarstyle.xml은 다음과 같이 쓸 수 있습니다: 법1:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="#ffffffff"
android:centerColor="#fffffff0"
android:centerY="0.75"
android:endColor="#fffffafa"
android:angle="270"
/>
shape>
item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="#8000cdcd"
android:centerColor="#8000bfff"
android:centerY="0.75"
android:endColor="#a000b2ee"
android:angle="270"
/>
shape>
clip>
item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="#ff00ffff"
android:centerColor="#ff00ced1"
android:centerY="0.75"
android:endColor="#ff00f5ff"
android:angle="270"
/>
shape>
clip>
item>
법2:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@android:id/background"
android:drawable="@drawable/sv_volume_seekbar_gray" />
<item android:id="@android:id/progress">
<clip android:drawable="@drawable/sv_volume_seekbar_blue_small" />
item>
layer-list>
주의: 첫 번째 진도표에 clip 라벨을 사용하면 그림을 펼칠 수 있으며, clip 라벨을 사용하지 않는 배경에서는 그림을 연결합니다.
슬라이더 스타일을 설정하려면 속성android:thumb=@drawable/thumb를 추가해야 합니다.xml은 다음과 같이 작성할 수 있습니다.
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/menu_bg" android:state_pressed="true"/>
<item android:drawable="@drawable/menu_bg" android:state_focused="false" android:state_pressed="false"/>
selector>
thumb를 제거하고 클릭한 물결 효과를 남기지 않으려면 다음과 같은 속성을 설정합니다.
android:thumb="@null"
android:background="@null"
이벤트 모니터 setOn SeekBarChange Listener를 설정하여seekBar의 현재 상태를 가져옵니다. 보통 다음 세 가지 이벤트를 감청합니다.
@Override
public void onProgressChanged(SeekBar seekBar, final int progress, boolean fromUser) {
runOnUiThread(new Runnable() {
@Override
public void run() {
value.setText("" + (progress - 6));
}
});
}