This commit is contained in:
pengxiaolong
2026-02-27 20:50:08 +08:00
parent acf4d39892
commit c018243116
85 changed files with 2031 additions and 485 deletions

View File

@@ -7,16 +7,27 @@
android:layout_height="match_parent"
android:background="#F6F7FB"
tools:context=".ui.home.HomeFragment">
<!-- 内容 -->
<androidx.core.widget.NestedScrollView
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:overScrollMode="never">
android:layout_height="wrap_content"
android:background="#F6F7FB"
android:elevation="0dp"
android:stateListAnimator="@null"
android:clipChildren="false"
android:clipToPadding="false">
<!-- 可滚动头部区域:随滚动消失 -->
<LinearLayout
android:id="@+id/headerContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:orientation="vertical"
android:clipChildren="false"
android:clipToPadding="false"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<!-- recharge背景 -->
<ImageView
android:layout_width="match_parent"
@@ -24,8 +35,10 @@
android:src="@drawable/recharge_bg"
android:scaleType="fitXY"
android:adjustViewBounds="true" />
<!-- 关闭按钮 -->
<FrameLayout
android:id="@+id/closeContainer"
android:layout_width="@dimen/sw_46dp"
android:layout_height="@dimen/sw_46dp"
android:layout_marginTop="@dimen/_sw_198dp">
@@ -38,268 +51,186 @@
android:rotation="180"
android:scaleType="fitCenter" />
</FrameLayout>
<!-- vip -->
<ImageView
android:id="@+id/iv_close"
android:layout_width="@dimen/sw_321dp"
android:layout_height="@dimen/sw_269dp"
android:layout_marginStart="@dimen/sw_24dp"
android:elevation="@dimen/sw_1dp"
android:src="@drawable/vip_two"/>
android:src="@drawable/vip_two" />
<!-- 权益背景 -->
<ImageView
android:id="@+id/iv_close"
android:layout_width="match_parent"
android:layout_height="@dimen/sw_391dp"
android:elevation="@dimen/sw_2dp"
android:layout_marginTop="@dimen/_sw_198dp"
android:src="@drawable/recharge_equity_bg"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_sw_380dp"
android:elevation="@dimen/sw_3dp"
android:padding="@dimen/sw_16dp"
android:orientation="vertical">
<TextView
android:id="@+id/member"
android:layout_marginTop="@dimen/sw_28dp"
android:layout_width="@dimen/sw_290dp"
android:layout_height="wrap_content"
android:textSize="@dimen/sw_18sp"
android:textStyle="bold"
android:textColor="#1B1F1A"
android:layout_gravity="center_horizontal"
android:text="Become A Member Of LOVE KEY" />
<TextView
android:id="@+id/Unlock"
android:layout_marginTop="@dimen/sw_3dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/sw_14sp"
android:textColor="#1B1F1A"
android:layout_gravity="center_horizontal"
android:text="Unlock all functions" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_16dp">
<ImageView
android:id="@+id/imgLeft"
android:layout_width="@dimen/sw_150dp"
android:layout_height="@dimen/sw_113dp"
android:scaleType="fitXY"
android:src="@drawable/recharge_wireless_sub_ai_dialogue"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
<ImageView
android:id="@+id/imgRight"
android:layout_width="@dimen/sw_150dp"
android:layout_height="@dimen/sw_109dp"
android:scaleType="fitXY"
android:src="@drawable/recharge_personalized_keyboard"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_10dp">
<ImageView
android:id="@+id/imgLeft"
android:layout_width="@dimen/sw_150dp"
android:layout_height="@dimen/sw_122dp"
android:scaleType="fitXY"
android:src="@drawable/recharge_chat_persona"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
<ImageView
android:id="@+id/imgRight"
android:layout_width="@dimen/sw_150dp"
android:layout_height="@dimen/sw_115dp"
android:scaleType="fitXY"
android:src="@drawable/recharge_emotional_counseling"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="@dimen/sw_16dp"
android:gravity="center_horizontal">
<!-- 卡片 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_75dp"
android:orientation="horizontal"
android:background="@drawable/recharge_card_bg"
android:gravity="center_vertical">
<!-- 左侧文字区域 -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="@dimen/sw_16dp"
android:orientation="vertical">
<!-- 标题Monthly Subscription -->
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Monthly Subscription"
android:textSize="@dimen/sw_14sp"
android:textColor="#1B1F1A" />
<!-- 价格区域:新价格 + 划线旧价格 -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="@dimen/sw_4dp">
<!-- 当前价格 -->
<TextView
android:id="@+id/tvPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="$4.49"
android:textSize="@dimen/sw_20sp"
android:textStyle="bold"
android:textColor="#000000" />
<!-- 旧价格(划线) -->
<TextView
android:id="@+id/tvOldPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/sw_8dp"
android:text="$4.49"
android:textSize="@dimen/sw_20sp"
android:textColor="#b3b3b3" />
</LinearLayout>
</LinearLayout>
<!-- 右侧选中 -->
<ImageView
android:id="@+id/ivCheck"
android:layout_width="@dimen/sw_24dp"
android:layout_height="@dimen/sw_24dp"
android:layout_marginEnd="@dimen/sw_16dp"
android:src="@drawable/unchecked"
android:scaleType="centerInside" />
</LinearLayout>
<!-- ··························· -->
</LinearLayout>
<!-- 评论 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="@dimen/sw_16dp"
android:gravity="center_vertical">
<!-- 卡片 -->
<LinearLayout
android:layout_width="@dimen/sw_204dp"
android:layout_height="@dimen/sw_115dp"
android:background="@drawable/settings"
android:orientation="vertical"
android:padding="@dimen/sw_10dp">
<!-- 头像昵称 -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<de.hdodenhof.circleimageview.CircleImageView
android:layout_width="@dimen/sw_24dp"
android:layout_height="@dimen/sw_24dp"
android:src="@drawable/default_avatar" />
<TextView
android:id="@+id/tvNickname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/sw_6dp"
android:text="Nickname"
android:singleLine="true"
android:ellipsize="end"
android:maxLines="1"
android:textSize="@dimen/sw_14sp"
android:textColor="#1B1F1A" />
</LinearLayout>
<!-- 五星好评 -->
<ImageView
android:id="@+id/ivStar"
android:layout_width="@dimen/sw_77dp"
android:layout_height="@dimen/sw_10dp"
android:layout_marginTop="@dimen/sw_8dp"
android:src="@drawable/five_star_review"
android:scaleType="fitXY" />
<!-- 评论内容 -->
<TextView
android:id="@+id/tvComment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_6dp"
android:text="I highly recommend this APP. It taught me how to chat"
android:ellipsize="end"
android:maxLines="2"
android:textSize="@dimen/sw_10sp"
android:textColor="#1B1F1A" />
</LinearLayout>
</LinearLayout>
<!-- 按钮 -->
<LinearLayout
android:id="@+id/rechargeButton"
android:layout_marginTop="@dimen/sw_24dp"
android:layout_width="@dimen/sw_343dp"
android:layout_height="@dimen/sw_51dp"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:background="@drawable/button_bg"
android:elevation="@dimen/sw_4dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/sw_15sp"
android:textStyle="bold"
android:gravity="center"
android:textColor="#1B1F1A"
android:text="Recharge now" />
</LinearLayout>
<!-- 协议 -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_17dp"
android:textSize="@dimen/sw_10sp"
android:text="By clicking &quot;pay&quot;, you indicate your agreement to the"
android:textColor="#1B1F1A"
android:gravity="center_horizontal"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_4dp"
android:textSize="@dimen/sw_10sp"
android:text="《Embership Agreement》"
android:textColor="#02BEAC"
android:gravity="center_horizontal" />
android:src="@drawable/recharge_equity_bg" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
<!-- 吸顶区域:不设 scrollFlags → 自动吸顶 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
android:background="#F6F7FB"
android:elevation="@dimen/sw_3dp"
android:outlineProvider="none">
<!-- 标题栏高度由代码控制0 → sw_46dp 渐进展开) -->
<FrameLayout
android:id="@+id/stickyTitleBar"
android:layout_width="match_parent"
android:layout_height="0dp"
android:clipChildren="true"
android:background="#F6F7FB">
<FrameLayout
android:layout_width="@dimen/sw_46dp"
android:layout_height="@dimen/sw_46dp"
android:layout_gravity="start|center_vertical">
<ImageView
android:id="@+id/iv_sticky_close"
android:layout_width="@dimen/sw_26dp"
android:layout_height="@dimen/sw_26dp"
android:layout_gravity="center"
android:src="@drawable/recharge_close"
android:rotation="180"
android:alpha="0"
android:scaleType="fitCenter" />
</FrameLayout>
<TextView
android:id="@+id/stickyTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/recharge_title"
android:textColor="#1B1F1A"
android:textSize="@dimen/sw_18sp"
android:textStyle="bold"
android:alpha="0" />
</FrameLayout>
<!-- 切换按钮 -->
<FrameLayout
android:id="@+id/tabSwitchContainer"
android:layout_width="@dimen/sw_321dp"
android:layout_height="@dimen/sw_39dp"
android:layout_marginTop="@dimen/sw_12dp"
android:layout_gravity="center_horizontal"
android:background="@drawable/recharge_tab_bg">
<!-- 滑动指示器 -->
<View
android:id="@+id/tabIndicator"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="start|center_vertical" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<!-- VIP 按钮 -->
<FrameLayout
android:id="@+id/tabVip"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1">
<ImageView
android:id="@+id/ivVipTab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/vip_select"
android:scaleType="centerInside" />
</FrameLayout>
<!-- SVIP 按钮 -->
<FrameLayout
android:id="@+id/tabSvip"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1">
<ImageView
android:id="@+id/ivSvipTab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/svip_not_selected"
android:scaleType="centerInside" />
</FrameLayout>
</LinearLayout>
</FrameLayout>
</LinearLayout>
</com.google.android.material.appbar.AppBarLayout>
<!-- 内容页面 -->
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:clipToPadding="false"
android:paddingBottom="@dimen/sw_120dp" />
<!-- 底部固定区域:按钮 + 协议 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:orientation="vertical"
android:gravity="center_horizontal"
android:background="#F6F7FB"
android:paddingTop="@dimen/sw_12dp"
android:paddingBottom="@dimen/sw_16dp"
android:elevation="@dimen/sw_4dp">
<!-- 按钮 -->
<LinearLayout
android:id="@+id/rechargeButton"
android:layout_width="@dimen/sw_343dp"
android:layout_height="@dimen/sw_51dp"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:background="@drawable/recharge_now_bg"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/sw_15sp"
android:textStyle="bold"
android:gravity="center"
android:textColor="#FFFFFF"
android:text="@string/recharge_btn" />
</LinearLayout>
<!-- 协议 -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_17dp"
android:textSize="@dimen/sw_10sp"
android:text="@string/recharge_pay_agreement"
android:textColor="#1B1F1A"
android:gravity="center_horizontal"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_4dp"
android:textSize="@dimen/sw_10sp"
android:text="@string/recharge_membership_agreement"
android:textColor="#02BEAC"
android:gravity="center_horizontal" />
</LinearLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<FrameLayout
android:layout_width="@dimen/sw_252dp"
android:layout_height="@dimen/sw_251dp"
android:background="@drawable/bg_chat_error_dialog">
<TextView
android:id="@+id/hintText"
android:layout_width="@dimen/sw_200dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingStart="@dimen/sw_16dp"
android:paddingEnd="@dimen/sw_16dp"
android:text=""
android:textColor="#000000"
android:textSize="12sp"
android:gravity="center"/>
</FrameLayout>
<TextView
android:id="@+id/btnRecharge"
android:layout_width="@dimen/sw_210dp"
android:layout_height="@dimen/sw_53dp"
android:layout_marginTop="@dimen/sw_27dp"
android:text="Go to recharge"
android:textColor="#000000"
android:textSize="14sp"
android:textStyle="bold"
android:gravity="center"
android:background="@drawable/bg_chat_error_dialog_button"/>
<ImageView
android:id="@+id/btnClose"
android:layout_width="@dimen/sw_48dp"
android:layout_height="@dimen/sw_48dp"
android:layout_marginTop="@dimen/sw_6dp"
android:padding="@dimen/sw_10dp"
android:src="@drawable/bg_chat_error_dialog_btnclose_button"/>
</LinearLayout>

View File

@@ -244,12 +244,16 @@
android:importantForAccessibility="no"
android:elevation="@dimen/sw_10dp">
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/noResultSwipeRefresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal">
android:gravity="center">
<ImageView
android:id="@+id/noResultImage"
@@ -271,6 +275,8 @@
android:textColor="#1B1F1A"
android:includeFontPadding="false" />
</LinearLayout>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</FrameLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
<!-- 抽屉 -->

View File

@@ -1,8 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/swipeRefreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/rootCoordinator"
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -248,7 +253,7 @@
<LinearLayout
android:id="@+id/topTabs"
android:layout_width="match_parent"
android:layout_height="@dimen/sw_40dp"
android:layout_height="@dimen/sw_56dp"
android:orientation="horizontal"
android:gravity="center_vertical"
android:paddingStart="@dimen/sw_16dp"
@@ -376,3 +381,5 @@
android:scaleType="centerInside" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>

View File

@@ -14,6 +14,11 @@
android:layout_height="match_parent"
android:background="#F6F7FB"/>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swipeRefreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -144,6 +149,8 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="@dimen/sw_11dp"
android:paddingEnd="@dimen/sw_11dp"
android:layout_marginTop="@dimen/sw_20dp">
<ImageView
android:id="@+id/imgLeft"
@@ -383,6 +390,7 @@
<!-- 电子邮件 -->
<LinearLayout
android:id="@+id/click_Email"
android:layout_width="match_parent"
android:layout_height="@dimen/sw_64dp"
android:gravity="center_vertical"
@@ -520,4 +528,6 @@
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/sw_12dp">
<ImageView
android:id="@+id/loadingIcon"
android:layout_width="@dimen/sw_24dp"
android:layout_height="@dimen/sw_24dp"
android:layout_gravity="center"
android:src="@drawable/chat_history_loading"
android:importantForAccessibility="no" />
</FrameLayout>

View File

@@ -11,8 +11,7 @@
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/ivMenuAvatar"
android:layout_width="@dimen/sw_40dp"
android:layout_height="@dimen/sw_40dp"
android:src="@drawable/a123123123" />
android:layout_height="@dimen/sw_40dp"/>
<!-- 昵称和描述 -->
<LinearLayout

View File

@@ -54,7 +54,7 @@
android:layout_height="@dimen/sw_264dp"
android:layout_marginTop="@dimen/sw_10dp"
android:scaleType="centerCrop"
android:src="@drawable/bg"
android:src="@drawable/component_loading"
app:shapeAppearanceOverlay="@style/RoundedImageStyle" />
<!-- 键盘名称和下载量 -->

View File

@@ -125,9 +125,11 @@
android:id="@+id/noResultText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="@dimen/sw_50dp"
android:paddingEnd="@dimen/sw_50dp"
android:gravity="center"
android:textAlignment="center"
android:text="@string/search_not_data"
android:text="@string/skin_select_none"
android:textSize="@dimen/sw_13sp"
android:textColor="#1B1F1A"
android:includeFontPadding="false" />

View File

@@ -0,0 +1,448 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:overScrollMode="never">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_16dp"
android:padding="@dimen/sw_16dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_recharge_svip"
android:padding="@dimen/sw_6dp"
android:orientation="vertical">
<!-- 支付 -->
<LinearLayout
android:layout_width="match_parent"
androidLlayout_marginTop="@dimen/sw_10dp"
android:layout_height="wrap_content"
android:orientation="horizontal">
<!-- 卡片 -->
<LinearLayout
android:layout_width="@dimen/sw_105dp"
android:layout_height="@dimen/sw_124dp"
android:background="@drawable/bg_recharge_svip_card"
android:layout_gravity="center_horizontal|center_vertical"
android:orientation="vertical">
<!-- 卡片标题 -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/recharge_svip_1_week"
android:textColor="#3D3D3D"
android:textSize="@dimen/sw_13sp"
android:gravity="center"
android:paddingBottom="@dimen/sw_6dp"
android:paddingTop="@dimen/sw_8dp"
android:textStyle="bold" />
<!-- 卡片价格 -->
<LinearLayout
android:layout_width="@dimen/sw_95dp"
android:layout_height="@dimen/sw_86dp"
android:background="@drawable/bg_recharge_svip_card_price"
android:layout_gravity="center_horizontal|center_vertical"
android:gravity="center"
android:orientation="horizontal">
<!-- 美元符 -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="$ "
android:textColor="#797979"
android:gravity="center"
android:textSize="@dimen/sw_10sp"/>
<!-- 价格 -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="100"
android:gravity="center"
android:textColor="#797979"
android:textSize="@dimen/sw_22sp"/>
</LinearLayout>
</LinearLayout>
<!-- `````` -->
</LinearLayout>
<!-- 权益 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/sw_20dp"
android:background="@drawable/bg_recharge_svip_benefits"
android:padding="@dimen/sw_8dp"
android:orientation="vertical">
<!-- 权益标题 -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="@dimen/sw_6dp"
android:orientation="horizontal">
<ImageView
android:layout_width="@dimen/sw_52dp"
android:layout_height="@dimen/sw_1dp"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_recharge_svip_benefit_1" />
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="@dimen/sw_17dp"
android:layout_marginStart="@dimen/sw_17dp">
<ImageView
android:layout_width="@dimen/sw_135dp"
android:layout_height="@dimen/sw_7dp"
android:layout_gravity="bottom|center_horizontal"
android:src="@drawable/ic_recharge_svip_benefit_1_icon" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/recharge_svip_membership_benefits"
android:textColor="#3D3D3D"
android:textSize="@dimen/sw_13sp"
android:layout_gravity="center_horizontal|center_vertical"
android:gravity="center"
android:textStyle="bold" />
</FrameLayout>
<ImageView
android:layout_width="@dimen/sw_52dp"
android:layout_height="@dimen/sw_1dp"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_recharge_svip_benefit_2" />
</LinearLayout>
<!-- 权益描述1 -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_50dp"
android:layout_marginTop="@dimen/sw_20dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_43dp"
android:layout_gravity="bottom"
android:paddingStart="@dimen/sw_65dp"
android:background="@drawable/bg_recharge_svip_benefit_desc"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/home_ai_dialogue"
android:textColor="#898B8C"
android:textSize="@dimen/sw_13sp"
android:layout_gravity="center_horizontal|center_vertical"
android:textStyle="bold" />
<ImageView
android:layout_width="@dimen/sw_13dp"
android:layout_height="@dimen/sw_9dp"
android:layout_marginEnd="@dimen/sw_20dp"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_recharge_svip_hook" />
</LinearLayout>
<ImageView
android:layout_width="@dimen/sw_34dp"
android:layout_height="@dimen/sw_36dp"
android:layout_marginStart="@dimen/sw_13dp"
android:layout_gravity="top"
android:src="@drawable/ic_recharge_svip_benefit_1_desc_1" />
</FrameLayout>
<!-- 权益描述2 -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_49dp"
android:layout_marginTop="@dimen/sw_11dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_43dp"
android:layout_gravity="bottom"
android:paddingStart="@dimen/sw_65dp"
android:background="@drawable/bg_recharge_svip_benefit_desc"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/home_ai_keyboard"
android:textColor="#898B8C"
android:textSize="@dimen/sw_13sp"
android:layout_gravity="center_horizontal|center_vertical"
android:textStyle="bold" />
<ImageView
android:layout_width="@dimen/sw_13dp"
android:layout_height="@dimen/sw_9dp"
android:layout_marginEnd="@dimen/sw_20dp"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_recharge_svip_hook" />
</LinearLayout>
<ImageView
android:layout_width="@dimen/sw_41dp"
android:layout_height="@dimen/sw_37dp"
android:layout_marginStart="@dimen/sw_10dp"
android:layout_gravity="top"
android:src="@drawable/ic_recharge_svip_benefit_1_desc_2" />
</FrameLayout>
<!-- 权益描述3 -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_51dp"
android:layout_marginTop="@dimen/sw_9dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_43dp"
android:layout_gravity="bottom"
android:paddingStart="@dimen/sw_65dp"
android:background="@drawable/bg_recharge_svip_benefit_desc"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/home_ai_persona"
android:textColor="#898B8C"
android:textSize="@dimen/sw_13sp"
android:layout_gravity="center_horizontal|center_vertical"
android:textStyle="bold" />
<ImageView
android:layout_width="@dimen/sw_13dp"
android:layout_height="@dimen/sw_9dp"
android:layout_marginEnd="@dimen/sw_20dp"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_recharge_svip_hook" />
</LinearLayout>
<ImageView
android:layout_width="@dimen/sw_26dp"
android:layout_height="@dimen/sw_39dp"
android:layout_marginStart="@dimen/sw_17dp"
android:layout_gravity="top"
android:src="@drawable/ic_recharge_svip_benefit_1_desc_3" />
</FrameLayout>
<!-- 权益描述4 -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_52dp"
android:layout_marginTop="@dimen/sw_8dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_43dp"
android:layout_gravity="bottom"
android:paddingStart="@dimen/sw_65dp"
android:background="@drawable/bg_recharge_svip_benefit_desc"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/home_ai_counseling"
android:textColor="#898B8C"
android:textSize="@dimen/sw_13sp"
android:layout_gravity="center_horizontal|center_vertical"
android:textStyle="bold" />
<ImageView
android:layout_width="@dimen/sw_13dp"
android:layout_height="@dimen/sw_9dp"
android:layout_marginEnd="@dimen/sw_20dp"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_recharge_svip_hook" />
</LinearLayout>
<ImageView
android:layout_width="@dimen/sw_35dp"
android:layout_height="@dimen/sw_38dp"
android:layout_marginStart="@dimen/sw_12dp"
android:layout_gravity="top"
android:src="@drawable/ic_recharge_svip_benefit_1_desc_4" />
</FrameLayout>
<!-- 权益描述5 -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_52dp"
android:layout_marginTop="@dimen/sw_8dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_43dp"
android:layout_gravity="bottom"
android:paddingStart="@dimen/sw_65dp"
android:background="@drawable/bg_recharge_svip_benefit_desc"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/recharge_svip_longer_chat_history"
android:textColor="#898B8C"
android:textSize="@dimen/sw_13sp"
android:layout_gravity="center_horizontal|center_vertical"
android:textStyle="bold" />
<ImageView
android:layout_width="@dimen/sw_13dp"
android:layout_height="@dimen/sw_9dp"
android:layout_marginEnd="@dimen/sw_20dp"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_recharge_svip_hook" />
</LinearLayout>
<ImageView
android:layout_width="@dimen/sw_36dp"
android:layout_height="@dimen/sw_37dp"
android:layout_marginStart="@dimen/sw_12dp"
android:layout_gravity="top"
android:src="@drawable/ic_recharge_svip_benefit_1_desc_5" />
</FrameLayout>
<!-- 权益描述6 -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_51dp"
android:layout_marginTop="@dimen/sw_9dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_43dp"
android:layout_gravity="bottom"
android:paddingStart="@dimen/sw_65dp"
android:background="@drawable/bg_recharge_svip_benefit_desc"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/recharge_svip_unlimited_chatting"
android:textColor="#898B8C"
android:textSize="@dimen/sw_13sp"
android:layout_gravity="center_horizontal|center_vertical"
android:textStyle="bold" />
<ImageView
android:layout_width="@dimen/sw_13dp"
android:layout_height="@dimen/sw_9dp"
android:layout_marginEnd="@dimen/sw_20dp"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_recharge_svip_hook" />
</LinearLayout>
<ImageView
android:layout_width="@dimen/sw_38dp"
android:layout_height="@dimen/sw_35dp"
android:layout_marginStart="@dimen/sw_12dp"
android:layout_gravity="top"
android:src="@drawable/ic_recharge_svip_benefit_1_desc_6" />
</FrameLayout>
<!-- 权益描述7 -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_51dp"
android:layout_marginTop="@dimen/sw_9dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_43dp"
android:layout_gravity="bottom"
android:paddingStart="@dimen/sw_65dp"
android:background="@drawable/bg_recharge_svip_benefit_desc"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/recharge_svip_no_speed_limits"
android:textColor="#898B8C"
android:textSize="@dimen/sw_13sp"
android:layout_gravity="center_horizontal|center_vertical"
android:textStyle="bold" />
<ImageView
android:layout_width="@dimen/sw_13dp"
android:layout_height="@dimen/sw_9dp"
android:layout_marginEnd="@dimen/sw_20dp"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_recharge_svip_hook" />
</LinearLayout>
<ImageView
android:layout_width="@dimen/sw_51dp"
android:layout_height="@dimen/sw_32dp"
android:layout_marginStart="@dimen/sw_3dp"
android:layout_gravity="top"
android:src="@drawable/ic_recharge_svip_benefit_1_desc_7" />
</FrameLayout>
<!-- 权益描述8 -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_54dp"
android:layout_marginTop="@dimen/sw_6dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_43dp"
android:layout_gravity="bottom"
android:paddingStart="@dimen/sw_65dp"
android:background="@drawable/bg_recharge_svip_benefit_desc"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/recharge_svip_coming_soon"
android:textColor="#898B8C"
android:textSize="@dimen/sw_13sp"
android:layout_gravity="center_horizontal|center_vertical"
android:textStyle="bold" />
<ImageView
android:layout_width="@dimen/sw_13dp"
android:layout_height="@dimen/sw_9dp"
android:layout_marginEnd="@dimen/sw_20dp"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_recharge_svip_hook" />
</LinearLayout>
<ImageView
android:layout_width="@dimen/sw_44dp"
android:layout_height="@dimen/sw_34dp"
android:layout_marginStart="@dimen/sw_7dp"
android:layout_gravity="top"
android:src="@drawable/ic_recharge_svip_benefit_1_desc_8" />
</FrameLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>

View File

@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:overScrollMode="never">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/sw_16dp"
android:orientation="vertical">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="@dimen/sw_11dp"
android:paddingEnd="@dimen/sw_11dp"
android:layout_marginTop="@dimen/sw_16dp">
<ImageView
android:id="@+id/imgLeft"
android:layout_width="@dimen/sw_150dp"
android:layout_height="@dimen/sw_113dp"
android:scaleType="fitXY"
android:src="@drawable/recharge_wireless_sub_ai_dialogue"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
<ImageView
android:id="@+id/imgRight"
android:layout_width="@dimen/sw_150dp"
android:layout_height="@dimen/sw_109dp"
android:scaleType="fitXY"
android:src="@drawable/recharge_personalized_keyboard"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="@dimen/sw_11dp"
android:paddingEnd="@dimen/sw_11dp"
android:layout_marginTop="@dimen/sw_10dp">
<ImageView
android:id="@+id/imgLeft2"
android:layout_width="@dimen/sw_150dp"
android:layout_height="@dimen/sw_122dp"
android:scaleType="fitXY"
android:src="@drawable/recharge_chat_persona"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
<ImageView
android:id="@+id/imgRight2"
android:layout_width="@dimen/sw_150dp"
android:layout_height="@dimen/sw_115dp"
android:scaleType="fitXY"
android:src="@drawable/recharge_emotional_counseling"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginTop="@dimen/sw_18dp"
android:gravity="center_horizontal">
<!-- 卡片 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/sw_75dp"
android:orientation="horizontal"
android:background="@drawable/recharge_card_bg"
android:gravity="center_vertical">
<!-- 左侧文字区域 -->
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="@dimen/sw_16dp"
android:orientation="vertical">
<!-- 标题Monthly Subscription -->
<TextView
android:id="@+id/tvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/recharge_monthly_subscription"
android:textSize="@dimen/sw_14sp"
android:textColor="#1B1F1A" />
<!-- 价格区域:新价格 + 划线旧价格 -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="@dimen/sw_4dp">
<!-- 当前价格 -->
<TextView
android:id="@+id/tvPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="$4.49"
android:textSize="@dimen/sw_20sp"
android:textStyle="bold"
android:textColor="#000000" />
</LinearLayout>
</LinearLayout>
<!-- 右侧选中 -->
<ImageView
android:id="@+id/ivCheck"
android:layout_width="@dimen/sw_24dp"
android:layout_height="@dimen/sw_24dp"
android:layout_marginEnd="@dimen/sw_16dp"
android:src="@drawable/unchecked"
android:scaleType="centerInside" />
</LinearLayout>
<!-- ··························· -->
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>

View File

@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/sw_193dp"
android:layout_height="wrap_content"
android:background="@drawable/bg_chat_message_popup"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/menuCopy"
android:layout_width="@dimen/sw_193dp"
android:layout_height="wrap_content"
android:paddingStart="@dimen/sw_13dp"
android:paddingTop="@dimen/sw_12dp"
android:paddingEnd="@dimen/sw_12dp"
android:paddingBottom="@dimen/sw_12dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:text="@string/chat_menu_copy"
android:textColor="#FFFFFF"
android:textSize="@dimen/sw_13sp" />
<ImageView
android:layout_width="@dimen/sw_14dp"
android:layout_height="@dimen/sw_14dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:contentDescription="@string/chat_menu_copy"
android:src="@drawable/chat_copy" />
</RelativeLayout>
<View
android:id="@+id/divider1"
android:layout_width="@dimen/sw_193dp"
android:layout_height="@dimen/sw_1dp"
android:background="#1FFFFFFF" />
<RelativeLayout
android:id="@+id/menuDelete"
android:layout_width="@dimen/sw_193dp"
android:layout_height="wrap_content"
android:paddingStart="@dimen/sw_13dp"
android:paddingTop="@dimen/sw_12dp"
android:paddingEnd="@dimen/sw_12dp"
android:paddingBottom="@dimen/sw_12dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:text="@string/delete"
android:textColor="#FFFFFF"
android:textSize="@dimen/sw_13sp" />
<ImageView
android:layout_width="@dimen/sw_14dp"
android:layout_height="@dimen/sw_14dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:contentDescription="@string/delete"
android:src="@drawable/chat_delete" />
</RelativeLayout>
<View
android:id="@+id/divider2"
android:layout_width="@dimen/sw_193dp"
android:layout_height="@dimen/sw_1dp"
android:background="#1FFFFFFF" />
<RelativeLayout
android:id="@+id/menuReport"
android:layout_width="@dimen/sw_193dp"
android:layout_height="wrap_content"
android:paddingStart="@dimen/sw_13dp"
android:paddingTop="@dimen/sw_12dp"
android:paddingEnd="@dimen/sw_12dp"
android:paddingBottom="@dimen/sw_12dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:text="@string/chat_menu_report"
android:textColor="#FFFFFF"
android:textSize="@dimen/sw_13sp" />
<ImageView
android:layout_width="@dimen/sw_14dp"
android:layout_height="@dimen/sw_14dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:contentDescription="@string/chat_menu_report"
android:src="@drawable/chat_report" />
</RelativeLayout>
</LinearLayout>