Android12_SystemUI下拉框新增音量控制条

Android产品下拉框一直只有亮度条没有音量控制条。 为了方便控制音量,普遍都是底部导航栏添加音量加减按钮,在Android10以后,大家普遍用上了手势导航,去掉底部导航栏。 目前需要再下拉框中可以直接控制音量。


前言

在Android12平台,QS 面板上,亮度控制条下面添加音量条,方便控制音量。

需求及效果

Android12 版本

  1. RK和MTK平台在下拉框QS面板中,亮度条的下方新增音量条控制器 亮度条长按不隐藏QS面板
  2. 亮度条长按不隐藏QS面板

在这里插入图片描述

在这里插入图片描述

基础必备

SystemUI 相关知识,务必做到基本流程了解、概念、架构、布局,方便实现基础功能和理解业务修改。
参考资料:截屏功能添加中的SystemUI基础描述

#修改说明
详细说明如下,参考修改文件和新增文件即可完成功能,实现需求

修改文件:

vendor
提供的引用内容未提及在 Android 12 系统中 SystemUI 下拉框实现左右布局的方法。不过,一般而言,在 Android 开发里,要实现布局通常可通过 XML 布局文件或者在 Java 或 Kotlin 代码里动态创建视图来达成。 ### 利用 XML 布局文件实现左右布局 可在 `res/layout` 目录下创建一个 XML 文件,借助 `LinearLayout` 或者 `RelativeLayout` 等布局容器来实现左右布局。以下是一个示例: ```xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <!-- 左侧视图 --> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Left View" /> <!-- 右侧视图 --> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Right View" /> </LinearLayout> ``` 在这个示例中,运用 `LinearLayout` 并把 `orientation` 属性设为 `horizontal`,从而实现左右布局。`layout_weight` 属性用于分配左右视图的宽度比例。 ### 在代码里动态创建视图实现左右布局 也能在 Java 或者 Kotlin 代码中动态创建视图并设置布局参数来实现左右布局。以下是一个 Java 示例: ```java import android.os.Bundle; import android.widget.LinearLayout; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 创建 LinearLayout 作为根布局 LinearLayout linearLayout = new LinearLayout(this); linearLayout.setOrientation(LinearLayout.HORIZONTAL); linearLayout.setLayoutParams(new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT )); // 创建左侧视图 TextView leftTextView = new TextView(this); leftTextView.setText("Left View"); LinearLayout.LayoutParams leftParams = new LinearLayout.LayoutParams( 0, LinearLayout.LayoutParams.WRAP_CONTENT, 1 ); leftTextView.setLayoutParams(leftParams); // 创建右侧视图 TextView rightTextView = new TextView(this); rightTextView.setText("Right View"); LinearLayout.LayoutParams rightParams = new LinearLayout.LayoutParams( 0, LinearLayout.LayoutParams.WRAP_CONTENT, 1 ); rightTextView.setLayoutParams(rightParams); // 将左右视图添加到 LinearLayout 中 linearLayout.addView(leftTextView); linearLayout.addView(rightTextView); // 设置 LinearLayout 为活动的内容视图 setContentView(linearLayout); } } ``` 此示例中,在 Java 代码里动态创建了 `LinearLayout` 以及左右 `TextView`,并设置了布局参数,最终将其添加到根布局中。
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野火少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值