垂直SeekBar(不用自定义)

先看效果

看到网上的博客各种自定义SeekBar,又是整onMeasure,又是旋转平移的,只能说low爆了。
下面最简洁垂直Seekbar,直接布局文件写就OK。

布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/volume_dialog"
    android:layout_width="50dp"
    android:layout_height="wrap_content"
    android:clipChildren="true"
    android:orientation="vertical">

    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="300dp"
        android:background="@drawable/volume_bg_shape">

        <SeekBar
            android:id="@+id/mSeekBar"
            android:layout_width="300dp"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:rotation="-90" />
    </FrameLayout>
</LinearLayout>

这就完了,是不是不敢相信!!!

通过 clipChildren 完美解决,该Idea并不是本人想到的,只是Android源码中 SystemUI 音量条的实现给了我启示。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
SeekBar是Android中的一个自定义控件,它允许用户通过滑动来选择一个数值。你可以在XML布局文件中声明一个SeekBar控件,并通过代码来获取和设置其值。 要创建一个自定义SeekBar控件,你可以继承SeekBar类,并重写一些方法来实现自定义的行为。以下是一个示例: ```java public class CustomSeekBar extends SeekBar { public CustomSeekBar(Context context) { super(context); } public CustomSeekBar(Context context, AttributeSet attrs) { super(context, attrs); } public CustomSeekBar(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public synchronized void setProgress(int progress) { // 在设置进度之前进行一些自定义操作 // 例如限制进度的范围或者改变进度条的外观 super.setProgress(progress); } @Override public synchronized void onProgressChanged(int progress, boolean fromUser) { super.onProgressChanged(progress, fromUser); // 当进度发生改变时的处理逻辑 // 可以根据进度值做出相应的响应 } } ``` 在这个示例中,我们重写了`setProgress()`方法和`onProgressChanged()`方法来实现自定义行为。你可以根据自己的需求进行修改和扩展。 在布局文件中使用自定义SeekBar控件时,需要指定完整的自定义控件的类名,例如: ```xml <com.example.app.CustomSeekBar android:id="@+id/customSeekBar" android:layout_width="match_parent" android:layout_height="wrap_content" /> ``` 这样就可以在代码中获取到这个自定义SeekBar控件,并对其进行操作了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值