- 三套布局三行 label 统一 44dp:此前 row2/3 为 60dp、row1 44dp, 进度条起点差 16dp 导致不对齐;英文标签简化为 Week/Month 后 44dp 足够 - 署名 TextView 补 @+id/widget_brand,Provider 动态 setTextViewText: 与行标签同源(跟随应用内语言),避免宿主进程按系统语言渲染混搭
240 lines
10 KiB
XML
240 lines
10 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- MIUI Widget 深色模式布局 — 文字颜色适配暗色背景 #2D1825 -->
|
||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||
android:id="@android:id/background"
|
||
android:layout_width="match_parent"
|
||
android:layout_height="match_parent"
|
||
android:background="@drawable/widget_bg">
|
||
|
||
<LinearLayout
|
||
android:id="@+id/widget_content"
|
||
android:layout_width="match_parent"
|
||
android:layout_height="match_parent"
|
||
android:orientation="vertical"
|
||
android:padding="8dp"
|
||
android:gravity="center_vertical">
|
||
|
||
<!-- 第一行:wordmark + 更新时间 + 刷新按钮 -->
|
||
<LinearLayout
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:orientation="horizontal"
|
||
android:gravity="center_vertical"
|
||
android:layout_marginBottom="2dp">
|
||
|
||
<ImageView
|
||
android:id="@+id/widget_wordmark"
|
||
android:layout_width="wrap_content"
|
||
android:layout_height="24dp"
|
||
android:src="@drawable/rainytoken_wordmark"
|
||
android:contentDescription="RainyToken"
|
||
android:adjustViewBounds="true" />
|
||
|
||
<TextView
|
||
android:id="@+id/widget_open_hint"
|
||
android:layout_width="10dp"
|
||
android:layout_height="24dp"
|
||
android:text=">"
|
||
android:textColor="#8A7A82"
|
||
android:textSize="14sp"
|
||
android:gravity="center" />
|
||
|
||
<TextView
|
||
android:id="@+id/widget_switch"
|
||
android:layout_width="48dp"
|
||
android:layout_height="24dp"
|
||
android:text="OCGO"
|
||
android:textColor="#FF85A2"
|
||
android:textSize="10sp"
|
||
android:textStyle="bold"
|
||
android:layout_marginStart="6dp"
|
||
android:gravity="center" />
|
||
|
||
<ProgressBar
|
||
style="@android:style/Widget.ProgressBar.Horizontal"
|
||
android:layout_width="0dp"
|
||
android:layout_height="1dp"
|
||
android:layout_weight="1"
|
||
android:max="100" android:progress="0"
|
||
android:progressTint="#00000000"
|
||
android:progressBackgroundTint="#00000000"
|
||
android:indeterminate="false" />
|
||
|
||
<TextView
|
||
android:id="@+id/widget_updated"
|
||
android:layout_width="wrap_content"
|
||
android:layout_height="wrap_content"
|
||
android:maxLines="1"
|
||
android:ellipsize="end"
|
||
android:text="--"
|
||
android:textColor="#D4C4CC"
|
||
android:textSize="10sp" />
|
||
|
||
<TextView
|
||
android:id="@+id/widget_refresh"
|
||
android:layout_width="40dp"
|
||
android:layout_height="24dp"
|
||
android:text="↻"
|
||
android:textColor="#FF85A2"
|
||
android:textSize="20sp"
|
||
android:layout_marginStart="6dp"
|
||
android:gravity="center" />
|
||
</LinearLayout>
|
||
|
||
<!-- OpenCode Go 标识 -->
|
||
<LinearLayout
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:orientation="horizontal"
|
||
android:gravity="center_vertical"
|
||
android:layout_marginBottom="6dp">
|
||
<ImageView
|
||
android:id="@+id/widget_logo"
|
||
android:layout_width="22dp" android:layout_height="12dp"
|
||
android:src="@drawable/ic_opencode_go_logo"
|
||
android:contentDescription="OpenCode Go"
|
||
android:layout_marginEnd="5dp" />
|
||
<TextView
|
||
android:id="@+id/widget_service_title"
|
||
android:layout_width="wrap_content"
|
||
android:layout_height="wrap_content"
|
||
android:text="@string/widget_title_opencode"
|
||
android:textColor="#C4A0AB"
|
||
android:textSize="11sp" />
|
||
</LinearLayout>
|
||
|
||
<!-- 5h -->
|
||
<LinearLayout
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:orientation="horizontal"
|
||
android:gravity="center_vertical"
|
||
android:layout_marginBottom="3dp">
|
||
<TextView android:id="@+id/row1_label"
|
||
android:layout_width="44dp" android:layout_height="wrap_content"
|
||
android:maxLines="1" android:ellipsize="end"
|
||
android:text="5h" android:textColor="#C4A0AB" android:textSize="11sp" />
|
||
<TextView android:id="@+id/row1_pct"
|
||
android:layout_width="38dp" android:layout_height="wrap_content"
|
||
android:text="--" android:textColor="#FFD1DC" android:textSize="12sp"
|
||
android:textStyle="bold" android:gravity="end" />
|
||
<ProgressBar android:id="@+id/row1_bar"
|
||
style="@android:style/Widget.ProgressBar.Horizontal"
|
||
android:layout_width="0dp" android:layout_height="6dp"
|
||
android:layout_weight="1" android:layout_marginStart="8dp"
|
||
android:layout_marginEnd="8dp" android:max="100" android:progress="0"
|
||
android:progressTint="@color/widget_bar_5h" />
|
||
<TextView android:id="@+id/row1_reset"
|
||
android:layout_width="48dp" android:layout_height="wrap_content"
|
||
android:text="--" android:textColor="#8A7A82" android:textSize="10sp" />
|
||
</LinearLayout>
|
||
|
||
<!-- 本周 -->
|
||
<LinearLayout
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:orientation="horizontal"
|
||
android:gravity="center_vertical"
|
||
android:layout_marginBottom="3dp">
|
||
<TextView android:id="@+id/row2_label"
|
||
android:layout_width="44dp" android:layout_height="wrap_content"
|
||
android:maxLines="1" android:ellipsize="end"
|
||
android:text="@string/window_weekly" android:textColor="#C4A0AB" android:textSize="11sp" />
|
||
<TextView android:id="@+id/row2_pct"
|
||
android:layout_width="38dp" android:layout_height="wrap_content"
|
||
android:text="--" android:textColor="#FFD1DC" android:textSize="12sp"
|
||
android:textStyle="bold" android:gravity="end" />
|
||
<ProgressBar android:id="@+id/row2_bar"
|
||
style="@android:style/Widget.ProgressBar.Horizontal"
|
||
android:layout_width="0dp" android:layout_height="6dp"
|
||
android:layout_weight="1" android:layout_marginStart="8dp"
|
||
android:layout_marginEnd="8dp" android:max="100" android:progress="0"
|
||
android:progressTint="@color/widget_bar_weekly" />
|
||
<TextView android:id="@+id/row2_reset"
|
||
android:layout_width="48dp" android:layout_height="wrap_content"
|
||
android:text="--" android:textColor="#8A7A82" android:textSize="10sp" />
|
||
</LinearLayout>
|
||
|
||
<!-- 本月 -->
|
||
<LinearLayout
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:orientation="horizontal"
|
||
android:gravity="center_vertical"
|
||
android:layout_marginBottom="3dp">
|
||
<TextView android:id="@+id/row3_label"
|
||
android:layout_width="44dp" android:layout_height="wrap_content"
|
||
android:maxLines="1" android:ellipsize="end"
|
||
android:text="@string/window_monthly" android:textColor="#C4A0AB" android:textSize="11sp" />
|
||
<TextView android:id="@+id/row3_pct"
|
||
android:layout_width="38dp" android:layout_height="wrap_content"
|
||
android:text="--" android:textColor="#FFD1DC" android:textSize="12sp"
|
||
android:textStyle="bold" android:gravity="end" />
|
||
<ProgressBar android:id="@+id/row3_bar"
|
||
style="@android:style/Widget.ProgressBar.Horizontal"
|
||
android:layout_width="0dp" android:layout_height="6dp"
|
||
android:layout_weight="1" android:layout_marginStart="8dp"
|
||
android:layout_marginEnd="8dp" android:max="100" android:progress="0"
|
||
android:progressTint="@color/widget_bar_monthly" />
|
||
<TextView android:id="@+id/row3_reset"
|
||
android:layout_width="48dp" android:layout_height="wrap_content"
|
||
android:text="--" android:textColor="#8A7A82" android:textSize="10sp" />
|
||
</LinearLayout>
|
||
|
||
<!-- DeepSeek 余额 -->
|
||
<LinearLayout
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:orientation="horizontal"
|
||
android:gravity="center_vertical"
|
||
android:layout_marginBottom="2dp">
|
||
<ImageView
|
||
android:layout_width="wrap_content" android:layout_height="12dp"
|
||
android:src="@drawable/ic_deepseek_logo"
|
||
android:contentDescription="DeepSeek"
|
||
android:adjustViewBounds="true"
|
||
android:layout_marginEnd="5dp" />
|
||
<TextView
|
||
android:layout_width="wrap_content"
|
||
android:layout_height="wrap_content"
|
||
android:text="@string/widget_deepseek_balance"
|
||
android:textColor="#C4A0AB"
|
||
android:textSize="11sp" />
|
||
<TextView
|
||
android:id="@+id/widget_ds_amount"
|
||
android:layout_width="wrap_content"
|
||
android:layout_height="wrap_content"
|
||
android:text="--"
|
||
android:textColor="#FFD1DC"
|
||
android:textSize="11sp"
|
||
android:textStyle="bold"
|
||
android:layout_marginStart="4dp" />
|
||
</LinearLayout>
|
||
|
||
<!-- 署名 -->
|
||
<LinearLayout
|
||
android:layout_width="match_parent"
|
||
android:layout_height="wrap_content"
|
||
android:orientation="horizontal"
|
||
android:gravity="center_vertical">
|
||
<ProgressBar
|
||
style="@android:style/Widget.ProgressBar.Horizontal"
|
||
android:layout_width="0dp"
|
||
android:layout_height="1dp"
|
||
android:layout_weight="1"
|
||
android:max="100" android:progress="0"
|
||
android:progressTint="#00000000"
|
||
android:progressBackgroundTint="#00000000"
|
||
android:indeterminate="false" />
|
||
<TextView
|
||
android:id="@+id/widget_brand"
|
||
android:layout_width="wrap_content"
|
||
android:layout_height="wrap_content"
|
||
android:text="@string/widget_brand"
|
||
android:textColor="#8A7A82"
|
||
android:textSize="9sp" />
|
||
</LinearLayout>
|
||
|
||
</LinearLayout>
|
||
|
||
</FrameLayout> |