Android13_SystemUI下拉框新增音量控制条

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

一、必备知识

  • 在Android12 版本上面已经完成了功能的实现,目前是在Android13
    版本实现此功能,可以参考上一篇文章相关的必备基础知识和实现方式Android12实现SystemUI下拉框新增音量控制条
  • 在Android12 基础上对比实现方式,来实现Android13 版本上面的功能

二、源码分析对比

源码对比Android12,

  • 音量条功能实现本身是参考下拉框已知的brightness 模块开发,所以需要对brightness模块熟悉;
  • SystemUI下拉QS、QQS这些组件包括其它组件是怎么添加到系统里面去,怎么展示的,这个逻辑很重要,也需要和Android12 对比下

1.brightness模块分析对比

Android12源码地址:http://xrefandroid.com/android-12.0.0_r34/xref/frameworks/base/packages/SystemUI/src/com/android/systemui/settings/brightness/

提供的引用内容未提及在 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`,并设置了布局参数,最终将其添加到根布局中。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

野火少年

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

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

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

打赏作者

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

抵扣说明:

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

余额充值