volumepanel.java_Android系统音量条实例代码

最近在定制Android系统音量条,发现代码还是蛮多的,下面总结一下。

代码是基于5.1.1版本的。

系统音量条的代码是在/frameworks/base/packages/SystemUI/src/com/android/systemui/volume/VolumePanel.java

布局文件是在/frameworks/base/packages/SystemUI/res/layout下。

先看看原生的音量条样式:

ca0a5b48011ec8b8c885d259848eb872.png

f799d05f6175f717b1951eaa97a2be08.png

在代码中可以发现volume_dialog.xml这个文件,这个文件就是承载音量条的布局了,在layout文件夹找到打开会发现这个布局很简单,只是include了一个volume_panel。

volume_panel布局包含了一个id叫slider_panel的FrameLayout和include了一个zen_mode_panel,显然slider_panel后面会包含seekbar,看VolumePanel.java也会发现在代码中加载了volume_panel_item.xml这个文件,一看,发现里面就包含了seekbar这个控件啦。另外zen_mode_panel是指勿扰模式。

在看这个布局文件的时候,你会看到android:clipChildren这个属性,它的作用:是否限制子View在其范围内,我们将其值设置为false后那么当子控件的高度高于父控件时也会完全显示,而不会被压缩。默认为true。

若想某个控件不显示,设置属性android:visibility=”gone”就好了。

看完布局,下面就主要看VolumePanel.java这个文件了。

VolumePanel下定义了两个重要的子类型,分别是StreamResources和StreamControl。StreamResources实际上是一个枚举,它的每一个可用元素保存了一个流类型的通知框所需要的各种资源,如图标、提示文字等。StreamResources的定义就像下面这样:

private enum StreamResources {

BluetoothSCOStream(AudioManager.STREAM_BLUETOOTH_SCO,

R.string.volume_icon_description_bluetooth,

IC_AUDIO_BT,

IC_AUDIO_BT_MUTE,

false),

// 这里省略了后面的几个枚举项的构造参数,这些与BluetoothSCOStream的内容是一致的

RingerStream(...),

VoiceStream(...),

AlarmStream(...),

MediaStream(...),

NotificationStream(...),

// for now, use media resources for master volume

MasterStream(...),

RemoteStream(...);// will be dynamically updated

int streamType; // 流类型

int d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SeekBarVolumizer.java是一个用于控制SeekBar音量显示进度的Android代码类资源。 SeekBar是Android中的一个滑动控件,用于在一定范围内选择一个值。SeekBarVolumizer.java是一个自定义的SeekBar音量调节器,用于控制音量变化并在SeekBar上显示音量的进度。 该类使用了Android的音频管理器(AudioManager)来获取和设置设备的音量。它在SeekBar的进度改变时,通过调用音频管理器的方法来改变设备的音量,并将当前的音量进度显示在SeekBar上。 SeekBarVolumizer.java还实现了SeekBar的监听器接口(OnSeekBarChangeListener),通过重写接口中的方法来响应SeekBar的改变。当SeekBar的进度改变时,SeekBarVolumizer.java会调用接口中的方法来更新音量并在SeekBar上显示新的进度。 除了控制音量和更新进度,SeekBarVolumizer.java还提供了一些额外的功能,如设置音量变化的步长、静音按钮的功能等。 总之,SeekBarVolumizer.java是一个用于控制SeekBar音量显示进度的Android代码类资源。它实现了SeekBar的监听器接口,通过与音频管理器交互实现音量的控制和显示进度的更新。可以方便地应用到Android项目中,为用户提供音量调节的功能。 ### 回答2: SeekBarVolumizer.java 是一个用于在 Android 中显示音量的进度代码类资源。 在 Android 中,SeekBar 是一个用户界面控件,用于显示一个水平,用户可以通过滑动手势来改变进度。SeekBarVolumizer.java 这个类对 SeekBar 进行了封装和扩展,以便在控制音量时更加方便和灵活。 该类的主要功能是将 SeekBar 与系统音量管理器相关联,以便实时获取和设置音量的值。SeekBarVolumizer.java 还实现了音量变化监听器,可以在音量发生变化时执行自定义的操作。 通过 SeekBarVolumizer.java,我们可以实现以下功能: 1. 显示当前音量的进度:SeekBarVolumizer.java音量与 SeekBar 进行绑定,通过更新 SeekBar 的进度来显示当前的音量。 2. 改变音量:通过滑动 SeekBar,用户可以实时调整音量的大小。 3. 监听音量变化:SeekBarVolumizer.java 实现了一个监听器,可以在音量发生变化时执行我们自定义的代码,例如在音量变为最大或最小时显示提示信息。 SeekBarVolumizer.java 代码类资源是一个非常有用的工具类,可以方便地处理音量控制功能。在开发 Android 应用中,我们可以利用该类来实现音量的控制、显示和监听操作,提升用户体验。 ### 回答3: SeekbarVolumizer是一个用于控制音量的工具类的Java文件,通常用于在Android应用程序中显示音量的进度,并提供用户交互功能。 SeekbarVolumizer类主要用于管理SeekBar和音量控制的逻辑。它提供了一些基本的方法和功能,例如设置最小值、最大值以及初始音量值。它还可以处理SeekBar的拖动事件,并根据拖动的位置更新音量控制器的值。 在Android应用程序中使用SeekbarVolumizer时,我们需要实例化一个Seekbar控件,并将其与SeekbarVolumizer类进行关联。然后,我们可以通过调用SeekbarVolumizer的方法来设置SeekBar的各种属性,例如设置音量的范围、设置初始音量值等。 在用户与SeekBar交互时,SeekbarVolumizer类会监听SeekBar的拖动事件,并在拖动过程中更新音量控制器的值。当拖动结束时,SeekbarVolumizer还可以触发相应的回调方法,以便我们可以执行一些特定的操作,例如保存用户设置的音量值。 总结来说,SeekbarVolumizer是一个用于显示音量进度、管理音量控制的Java类资源。它与SeekBar控件进行关联,并提供了一些基本的方法和功能,使我们能够方便地在Android应用程序中实现音量控制的功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值