20%

KHUYẾN MẠI

Giảm giá khi nâng cấp web năm 2020

Tạo seekbar và kiến thức hữu ích về seekbar trong Android

android-p

Bạn cần sử dụng seekbar và gặp trục trặc 1 chút với nó thì có thể tham khảo bài viết này.

Kết quả mong muốn là hình bên trên, hình bên dưới là seekbar mặc định của Gôgle khi tạo

Để cho cái cục thumb kia ko bị mất một nửa thì chỉ cần thay đổi offset

Đưa seekbar vào view:

<ImageView
        android:id="@+id/sliderMin"
        app:layout_constraintBottom_toTopOf="@+id/guideline19"
        app:layout_constraintEnd_toStartOf="@+id/guideline24"
        app:layout_constraintTop_toTopOf="@+id/guideline26"
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:src="@drawable/slider_min" />

    <SeekBar
        android:id="@+id/thinSeekBar"
        app:layout_constraintBottom_toTopOf="@+id/guideline19"
        app:layout_constraintEnd_toStartOf="@+id/guideline25"
        app:layout_constraintStart_toEndOf="@+id/guideline24"
        app:layout_constraintTop_toTopOf="@+id/guideline26"
        android:layout_width="0dp"
        android:layout_height="20dp"
        android:paddingStart="0dp"
        android:paddingEnd="0dp"
        android:progress="50"
        android:thumb="@drawable/custom_thumb_seekbar"
        android:thumbOffset="0dp" />

    <ImageView
        android:id="@+id/sliderMax"
        app:layout_constraintBottom_toTopOf="@+id/guideline19"
        app:layout_constraintStart_toEndOf="@+id/guideline25"
        app:layout_constraintTop_toTopOf="@+id/guideline26"
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:src="@drawable/slider_max" />
// giá trị mặc định cục thumb
android:progress="50"

// custom cái cục thumb
android:thumb="@drawable/custom_thumb_seekbar"

// reset 2 đầu cho bằng độ dài seekbar
android:paddingStart="0dp"
android:paddingEnd="0dp"

//không cho cục thumb thoát ra ngoài seekbar
android:thumbOffset="0dp"

// cái này làm constraintLayout thôi
app:layout_constraintBottom_toTopOf="@+id/guideline19"
app:layout_constraintEnd_toStartOf="@+id/guideline25"
app:layout_constraintStart_toEndOf="@+id/guideline24"
app:layout_constraintTop_toTopOf="@+id/guideline26"

Lắng nghe khi người dùng thay đổi giá trị trong Activity hoặc Fragment. Implement nó trước: public class ABCFragment extends Fragment implements SeekBar.OnSeekBarChangeListener

MONG BẠN GIÚP ĐỠ TRANG NÀY



Từ bây giờ trở đi, ngoài hỗ trợ bình luận trên trang dotrinh.com thì mình còn hỗ trợ trên trang Facebook cá nhân này.

Hãy THÍCH và CHIA SẺ trang, nếu bạn có thắc mắc hay cần trao đổi vấn đề tại đây.

Sau đó nghe nó: thinSeekBar.setOnSeekBarChangeListener(this);

Cuối cùng ghi đè hàm onProgressChanged:

@Override

    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

        float converted = 1f + (progress - 50) / 100f;

    }

Cái tham số fromUser rất hữu ích vì cái seekbar có thể do người dùng họ thay đổi hoặc thông qua hàm setProgress cũng tự thay đổi được. Nên dựa vào đây mà ta có xử lí thích hợp.

Tham khảo thêm vấn đề của người khác: https://stackoverflow.com/questions/3026721/is-it-possible-to-have-a-seekbars-thumb-image-extend-outside-the-bar

Các bài viết không xem thì tiếc:

《Chia sẻ kiến thức này là người hào sảng》

Thảo luận

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Main Menu