2026-03-01 23:56:28 +08:00
|
|
|
<?xml version="1.0" encoding="utf-8"?>
|
|
|
|
|
<ScrollView 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:layout_width="match_parent"
|
|
|
|
|
android:layout_height="match_parent"
|
|
|
|
|
android:background="@color/colorSurface"
|
|
|
|
|
android:fillViewport="true">
|
|
|
|
|
|
|
|
|
|
<LinearLayout
|
|
|
|
|
android:layout_width="match_parent"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:orientation="vertical"
|
|
|
|
|
android:padding="16dp">
|
|
|
|
|
|
|
|
|
|
<!-- 标题栏:应用名 + 设置 -->
|
|
|
|
|
<LinearLayout
|
|
|
|
|
android:layout_width="match_parent"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:orientation="horizontal"
|
|
|
|
|
android:gravity="center_vertical"
|
|
|
|
|
android:layout_marginBottom="16dp">
|
|
|
|
|
<TextView
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:layout_weight="1"
|
|
|
|
|
android:text="@string/app_name"
|
|
|
|
|
android:textColor="@color/colorPrimary"
|
|
|
|
|
android:textSize="24sp"
|
|
|
|
|
android:textStyle="bold" />
|
2026-03-04 21:47:16 +08:00
|
|
|
<com.google.android.material.button.MaterialButton
|
|
|
|
|
android:id="@+id/btn_history"
|
|
|
|
|
style="@style/Widget.MaterialComponents.Button.TextButton"
|
|
|
|
|
android:layout_width="wrap_content"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:text="@string/btn_history"
|
|
|
|
|
android:layout_marginEnd="8dp" />
|
2026-03-01 23:56:28 +08:00
|
|
|
<com.google.android.material.button.MaterialButton
|
|
|
|
|
android:id="@+id/btn_settings"
|
|
|
|
|
style="@style/Widget.MaterialComponents.Button.TextButton"
|
|
|
|
|
android:layout_width="wrap_content"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:text="设置" />
|
|
|
|
|
</LinearLayout>
|
|
|
|
|
|
|
|
|
|
<!-- 预设提示区 -->
|
|
|
|
|
<TextView
|
|
|
|
|
android:layout_width="wrap_content"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:text="常用提示"
|
|
|
|
|
android:textColor="@color/colorTextSecondary"
|
|
|
|
|
android:textSize="12sp"
|
|
|
|
|
android:layout_marginBottom="8dp" />
|
|
|
|
|
<com.google.android.material.chip.ChipGroup
|
|
|
|
|
android:id="@+id/preset_chip_group"
|
|
|
|
|
android:layout_width="match_parent"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
app:singleSelection="false"
|
|
|
|
|
app:selectionRequired="false"
|
|
|
|
|
android:layout_marginBottom="16dp">
|
|
|
|
|
|
|
|
|
|
<com.google.android.material.chip.Chip
|
|
|
|
|
android:id="@+id/preset_email"
|
|
|
|
|
style="@style/Widget.MaterialComponents.Chip.Choice"
|
|
|
|
|
android:layout_width="wrap_content"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:text="@string/preset_email" />
|
|
|
|
|
<com.google.android.material.chip.Chip
|
|
|
|
|
android:id="@+id/preset_product"
|
|
|
|
|
style="@style/Widget.MaterialComponents.Chip.Choice"
|
|
|
|
|
android:layout_width="wrap_content"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:text="@string/preset_product" />
|
|
|
|
|
<com.google.android.material.chip.Chip
|
|
|
|
|
android:id="@+id/preset_story"
|
|
|
|
|
style="@style/Widget.MaterialComponents.Chip.Choice"
|
|
|
|
|
android:layout_width="wrap_content"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:text="@string/preset_story" />
|
|
|
|
|
<com.google.android.material.chip.Chip
|
|
|
|
|
android:id="@+id/preset_summary"
|
|
|
|
|
style="@style/Widget.MaterialComponents.Chip.Choice"
|
|
|
|
|
android:layout_width="wrap_content"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:text="@string/preset_summary" />
|
|
|
|
|
<com.google.android.material.chip.Chip
|
|
|
|
|
android:id="@+id/preset_poem"
|
|
|
|
|
style="@style/Widget.MaterialComponents.Chip.Choice"
|
|
|
|
|
android:layout_width="wrap_content"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:text="@string/preset_poem" />
|
|
|
|
|
</com.google.android.material.chip.ChipGroup>
|
|
|
|
|
|
|
|
|
|
<!-- 输入区 -->
|
|
|
|
|
<com.google.android.material.textfield.TextInputLayout
|
|
|
|
|
android:layout_width="match_parent"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:hint="@string/prompt_hint"
|
|
|
|
|
app:boxBackgroundColor="@color/colorCard"
|
|
|
|
|
app:boxStrokeColor="@color/colorPrimary"
|
|
|
|
|
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
|
|
|
|
|
android:layout_marginBottom="12dp">
|
|
|
|
|
|
|
|
|
|
<com.google.android.material.textfield.TextInputEditText
|
|
|
|
|
android:id="@+id/input_prompt"
|
|
|
|
|
android:layout_width="match_parent"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:minLines="4"
|
|
|
|
|
android:gravity="top"
|
|
|
|
|
android:inputType="textMultiLine|textCapSentences" />
|
|
|
|
|
</com.google.android.material.textfield.TextInputLayout>
|
|
|
|
|
|
|
|
|
|
<!-- 生成长度 -->
|
|
|
|
|
<TextView
|
|
|
|
|
android:layout_width="wrap_content"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:text="生成长度"
|
|
|
|
|
android:textColor="@color/colorTextSecondary"
|
|
|
|
|
android:textSize="12sp"
|
|
|
|
|
android:layout_marginBottom="4dp" />
|
|
|
|
|
<com.google.android.material.slider.Slider
|
|
|
|
|
android:id="@+id/slider_length"
|
|
|
|
|
android:layout_width="match_parent"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:valueFrom="0"
|
|
|
|
|
android:valueTo="2"
|
|
|
|
|
android:stepSize="1"
|
|
|
|
|
android:value="1"
|
|
|
|
|
app:labelBehavior="gone"
|
|
|
|
|
android:layout_marginBottom="8dp" />
|
|
|
|
|
<LinearLayout
|
|
|
|
|
android:layout_width="match_parent"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:orientation="horizontal"
|
|
|
|
|
android:layout_marginBottom="12dp">
|
|
|
|
|
<TextView
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:layout_weight="1"
|
|
|
|
|
android:text="@string/length_short"
|
|
|
|
|
android:textSize="12sp"
|
|
|
|
|
android:textColor="@color/colorTextSecondary" />
|
|
|
|
|
<TextView
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:layout_weight="1"
|
|
|
|
|
android:text="@string/length_medium"
|
|
|
|
|
android:textSize="12sp"
|
|
|
|
|
android:gravity="center"
|
|
|
|
|
android:textColor="@color/colorTextSecondary" />
|
|
|
|
|
<TextView
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:layout_weight="1"
|
|
|
|
|
android:text="@string/length_long"
|
|
|
|
|
android:textSize="12sp"
|
|
|
|
|
android:gravity="end"
|
|
|
|
|
android:textColor="@color/colorTextSecondary" />
|
|
|
|
|
</LinearLayout>
|
|
|
|
|
|
|
|
|
|
<!-- 创意程度 -->
|
|
|
|
|
<TextView
|
|
|
|
|
android:layout_width="wrap_content"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:text="创意程度"
|
|
|
|
|
android:textColor="@color/colorTextSecondary"
|
|
|
|
|
android:textSize="12sp"
|
|
|
|
|
android:layout_marginBottom="4dp" />
|
|
|
|
|
<com.google.android.material.slider.Slider
|
|
|
|
|
android:id="@+id/slider_temperature"
|
|
|
|
|
android:layout_width="match_parent"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:valueFrom="0"
|
|
|
|
|
android:valueTo="2"
|
|
|
|
|
android:stepSize="1"
|
|
|
|
|
android:value="1"
|
|
|
|
|
app:labelBehavior="gone"
|
|
|
|
|
android:layout_marginBottom="8dp" />
|
|
|
|
|
<LinearLayout
|
|
|
|
|
android:layout_width="match_parent"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:orientation="horizontal"
|
|
|
|
|
android:layout_marginBottom="16dp">
|
|
|
|
|
<TextView
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:layout_weight="1"
|
|
|
|
|
android:text="@string/temp_conservative"
|
|
|
|
|
android:textSize="12sp"
|
|
|
|
|
android:textColor="@color/colorTextSecondary" />
|
|
|
|
|
<TextView
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:layout_weight="1"
|
|
|
|
|
android:text="@string/temp_balanced"
|
|
|
|
|
android:textSize="12sp"
|
|
|
|
|
android:gravity="center"
|
|
|
|
|
android:textColor="@color/colorTextSecondary" />
|
|
|
|
|
<TextView
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:layout_weight="1"
|
|
|
|
|
android:text="@string/temp_creative"
|
|
|
|
|
android:textSize="12sp"
|
|
|
|
|
android:gravity="end"
|
|
|
|
|
android:textColor="@color/colorTextSecondary" />
|
|
|
|
|
</LinearLayout>
|
|
|
|
|
|
2026-03-02 00:26:28 +08:00
|
|
|
<!-- 操作按钮区:优化 + 生成 -->
|
|
|
|
|
<LinearLayout
|
2026-03-01 23:56:28 +08:00
|
|
|
android:layout_width="match_parent"
|
2026-03-02 00:26:28 +08:00
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:orientation="horizontal"
|
|
|
|
|
android:baselineAligned="false"
|
|
|
|
|
android:layout_marginBottom="20dp">
|
|
|
|
|
<com.google.android.material.button.MaterialButton
|
|
|
|
|
android:id="@+id/btn_optimize"
|
|
|
|
|
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="56dp"
|
|
|
|
|
android:layout_weight="1"
|
|
|
|
|
android:text="@string/btn_optimize"
|
|
|
|
|
android:layout_marginEnd="8dp" />
|
|
|
|
|
<com.google.android.material.button.MaterialButton
|
|
|
|
|
android:id="@+id/btn_generate"
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="56dp"
|
|
|
|
|
android:layout_weight="1"
|
|
|
|
|
android:text="@string/btn_generate"
|
|
|
|
|
app:backgroundTint="@color/colorPrimary"
|
|
|
|
|
android:textColor="@color/colorWhite"
|
|
|
|
|
android:layout_marginStart="8dp" />
|
|
|
|
|
</LinearLayout>
|
2026-03-01 23:56:28 +08:00
|
|
|
|
|
|
|
|
<!-- 加载指示 -->
|
|
|
|
|
<ProgressBar
|
|
|
|
|
android:id="@+id/progress_bar"
|
|
|
|
|
android:layout_width="wrap_content"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:layout_gravity="center"
|
|
|
|
|
android:visibility="gone"
|
|
|
|
|
android:layout_marginBottom="16dp" />
|
|
|
|
|
|
|
|
|
|
<!-- 结果展示区 -->
|
|
|
|
|
<TextView
|
|
|
|
|
android:layout_width="wrap_content"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:text="生成结果"
|
|
|
|
|
android:textColor="@color/colorTextSecondary"
|
|
|
|
|
android:textSize="12sp"
|
|
|
|
|
android:layout_marginBottom="8dp" />
|
|
|
|
|
<com.google.android.material.card.MaterialCardView
|
|
|
|
|
android:layout_width="match_parent"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
app:cardBackgroundColor="@color/colorCard"
|
|
|
|
|
app:cardElevation="2dp"
|
|
|
|
|
app:cardCornerRadius="12dp"
|
|
|
|
|
android:minHeight="120dp"
|
|
|
|
|
android:layout_marginBottom="12dp">
|
|
|
|
|
|
|
|
|
|
<ScrollView
|
|
|
|
|
android:layout_width="match_parent"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:fillViewport="true"
|
|
|
|
|
android:padding="16dp">
|
|
|
|
|
|
|
|
|
|
<TextView
|
|
|
|
|
android:id="@+id/result_text"
|
|
|
|
|
android:layout_width="match_parent"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:text="@string/result_placeholder"
|
|
|
|
|
android:textColor="@color/colorText"
|
|
|
|
|
android:textSize="15sp"
|
|
|
|
|
android:lineSpacingMultiplier="1.2"
|
|
|
|
|
tools:text="这里是流式显示的结果文本…" />
|
|
|
|
|
</ScrollView>
|
|
|
|
|
</com.google.android.material.card.MaterialCardView>
|
|
|
|
|
|
|
|
|
|
<!-- 操作按钮栏 -->
|
|
|
|
|
<LinearLayout
|
|
|
|
|
android:layout_width="match_parent"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:orientation="horizontal"
|
|
|
|
|
android:gravity="center"
|
|
|
|
|
android:paddingTop="8dp"
|
|
|
|
|
android:paddingBottom="24dp">
|
|
|
|
|
|
|
|
|
|
<com.google.android.material.button.MaterialButton
|
|
|
|
|
android:id="@+id/btn_copy"
|
|
|
|
|
style="@style/Widget.MaterialComponents.Button.TextButton"
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:layout_weight="1"
|
|
|
|
|
android:text="@string/btn_copy" />
|
|
|
|
|
<com.google.android.material.button.MaterialButton
|
|
|
|
|
android:id="@+id/btn_regenerate"
|
|
|
|
|
style="@style/Widget.MaterialComponents.Button.TextButton"
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:layout_weight="1"
|
|
|
|
|
android:text="@string/btn_regenerate" />
|
|
|
|
|
<com.google.android.material.button.MaterialButton
|
|
|
|
|
android:id="@+id/btn_continue"
|
|
|
|
|
style="@style/Widget.MaterialComponents.Button.TextButton"
|
|
|
|
|
android:layout_width="0dp"
|
|
|
|
|
android:layout_height="wrap_content"
|
|
|
|
|
android:layout_weight="1"
|
|
|
|
|
android:text="@string/btn_continue" />
|
|
|
|
|
</LinearLayout>
|
|
|
|
|
</LinearLayout>
|
|
|
|
|
</ScrollView>
|