Android12.0 SystemUI Tile 布局横向转竖向修改

默认是这样显示的:

现在我们需要将Tile的布局改成上下布局,图上方文字下方的显示布局,如下图:

其中主要需要修改的文件为:

packages/SystemUI/res/layout/qs_tile_label.xml
 packages/SystemUI/res/values-land/dimens.xml 
 packages/SystemUI/res/values/dimens.xml  
 packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileViewImpl.kt 

--- a/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileViewImpl.kt
+++ b/packages/SystemUI/src/com/android/systemui/qs/tileimpl/QSTileViewImpl.kt
@@ -123,8 +123,8 @@ open class QSTileViewImpl @JvmOverloads constructor(
 
     init {
         setId(generateViewId())
-        orientation = LinearLayout.HORIZONTAL
-        gravity = Gravity.CENTER_VERTICAL or Gravity.START
+        orientation = LinearLayout.VERTICAL
+        gravity = Gravity.CENTER
这里修改布局由HORIZONTAL变为VERTICAL 对齐方式改为居中

--- a/packages/SystemUI/res/layout/qs_tile_label.xml
+++ b/packages/SystemUI/res/layout/qs_tile_label.xml
@@ -16,21 +16,18 @@
 -->
 <com.android.systemui.qs.tileimpl.IgnorableChildLinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="0dp"
+    android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_weight="1"
     android:clipChildren="false"
     android:clipToPadding="false"
     android:orientation="vertical"
-    android:layout_marginStart="@dimen/qs_label_container_margin"
-    android:layout_marginEnd="0dp"
-    android:layout_gravity="center_vertical | start">
+    android:layout_gravity="center">
 
     <TextView
         android:id="@+id/tile_label"
-        android:layout_width="wrap_content"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:gravity="start"
+        android:gravity="center"
         android:textDirection="locale"
         android:ellipsize="marquee"
         android:marqueeRepeatLimit="1"
@@ -39,9 +36,9 @@
 
     <TextView
         android:id="@+id/app_label"
-        android:layout_width="wrap_content"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:gravity="start"
+        android:gravity="center"
         android:textDirection="locale"
         android:ellipsize="marquee"
         android:marqueeRepeatLimit="1"
这里修改的是文字对齐方式,之前是左对齐,现在改为居中对齐。

上面两处修改完后,编译出来的Tile就是上下布局的方式了,但还有一些细节的修改,例如文字不居中之类的 就需要修改packages/SystemUI/res/values/dimens.xml

--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -548,7 +548,7 @@
     <dimen name="pull_span_min">25dp</dimen>
 
     <dimen name="qs_corner_radius">28dp</dimen>
-    <dimen name="qs_tile_height">84dp</dimen>
+    <dimen name="qs_tile_height">90dp</dimen>
     <!--notification_side_paddings + notification_content_margin_start - (qs_quick_tile_size - qs_tile_background_size) / 2 -->
     <dimen name="qs_tile_layout_margin_side">18dp</dimen>
     <dimen name="qs_tile_margin_horizontal">8dp</dimen>
@@ -566,12 +566,12 @@
     <dimen name="qs_customize_internal_side_paddings">8dp</dimen>
     <dimen name="qs_tile_icon_background_stroke_width">-1dp</dimen>
     <dimen name="qs_tile_background_size">56dp</dimen>
-    <dimen name="qs_icon_size">20dp</dimen>
+    <dimen name="qs_icon_size">30dp</dimen>
     <dimen name="qs_side_view_size">28dp</dimen>
-    <dimen name="qs_label_container_margin">10dp</dimen>
-    <dimen name="qs_quick_tile_size">60dp</dimen>
-    <dimen name="qs_tile_padding">12dp</dimen>
-    <dimen name="qs_tile_start_padding">16dp</dimen>
+    <dimen name="qs_label_container_margin">0dp</dimen>
+    <dimen name="qs_quick_tile_size">70dp</dimen>
+    <dimen name="qs_tile_padding">10dp</dimen>
+    <dimen name="qs_tile_start_padding">10dp</dimen>
 

另外如果还需要修改Icon的大小,需要修改对应qs_tile_height的大小

--- a/packages/SystemUI/res/values-land/dimens.xml
+++ b/packages/SystemUI/res/values-land/dimens.xml
@@ -22,7 +22,7 @@
     <dimen name="docked_divider_handle_width">2dp</dimen>
     <dimen name="docked_divider_handle_height">16dp</dimen>
 
-    <dimen name="qs_tile_height">84dp</dimen>
+    <dimen name="qs_tile_height">90dp</dimen>
     <dimen name="qs_brightness_margin_top">0dp</dimen>
     <dimen name="qs_brightness_margin_bottom">12dp</dimen>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值