• 四则运算


    设计思路:

    UI设计思路:

    一共四个页面:首页,习题页,成功页,失败页

    将这四个页面通过Navigation连接起来形成一条逻辑关系。

     接下来就是对每个页面进行设计。

    首页:一个TextView和一个ImageView还有一个Button,顶部是一个最高分Textview,通过button来进入出题页面

    <?xml version="1.0" encoding="utf-8"?>
    <layout 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">
    
        <data>
            <variable
                name="data"
                type="com.example.calculation.MyViewModel" />
        </data>
    
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:context=".TitleFragment">
    
            <androidx.constraintlayout.widget.Guideline
                android:id="@+id/guideline"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                app:layout_constraintGuide_percent="0.1" />
    
            <androidx.constraintlayout.widget.Guideline
                android:id="@+id/guideline2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                app:layout_constraintGuide_percent="0.9" />
    
            <TextView
                android:id="@+id/textView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/CalName"
                android:textSize="@dimen/huge_size"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toStartOf="@+id/guideline2"
                app:layout_constraintStart_toStartOf="@+id/guideline"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_bias="0.106" />
    
            <ImageView
                android:id="@+id/imageView"
                android:layout_width="320dp"
                android:layout_height="349dp"
                android:contentDescription="@string/title_image"
                android:src="@drawable/size"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintDimensionRatio="w,1:1"
                app:layout_constraintEnd_toStartOf="@+id/guideline2"
                app:layout_constraintHorizontal_bias="0.56"
                app:layout_constraintStart_toStartOf="@+id/guideline"
                app:layout_constraintTop_toTopOf="parent" />
    
            <Button
                android:id="@+id/button"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:text="@string/title_button"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toStartOf="@+id/guideline2"
                app:layout_constraintHorizontal_bias="0.0"
                app:layout_constraintStart_toStartOf="@+id/guideline"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_bias="0.862" />
    
            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@{@string/higer_score(data.highScore)}"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.883"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintVertical_bias="0.036"
                tools:text="High Score:%d" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    </layout>
    

      出题页面:顶部代表目前的得分情况,中间是一个算式,下面是答案,接下来是4行3列,12个按钮代表你的操作。

    <?xml version="1.0" encoding="utf-8"?>
    <layout 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">
    
        <data>
            <variable
                name="data"
                type="com.example.calculation.MyViewModel" />
        </data>
    
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:context=".QuestionFragment">
    
            <androidx.constraintlayout.widget.Guideline
                android:id="@+id/guideline3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                app:layout_constraintGuide_percent="0.1" />
    
            <androidx.constraintlayout.widget.Guideline
                android:id="@+id/guideline4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                app:layout_constraintGuide_percent="0.2" />
    
            <androidx.constraintlayout.widget.Guideline
                android:id="@+id/guideline5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                app:layout_constraintGuide_percent="0.33" />
    
            <androidx.constraintlayout.widget.Guideline
                android:id="@+id/guideline6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                app:layout_constraintGuide_percent="0.4" />
    
            <androidx.constraintlayout.widget.Guideline
                android:id="@+id/guideline10"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                app:layout_constraintGuide_percent="0.5" />
    
            <androidx.constraintlayout.widget.Guideline
                android:id="@+id/guideline11"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                app:layout_constraintGuide_percent="0.6" />
    
            <androidx.constraintlayout.widget.Guideline
                android:id="@+id/guideline12"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                app:layout_constraintGuide_percent="0.7" />
    
            <androidx.constraintlayout.widget.Guideline
                android:id="@+id/guideline7"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                app:layout_constraintGuide_percent="0.8" />
    
            <TextView
                android:id="@+id/textView3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@{@string/Current_Score(data.currentScore)}"
                app:layout_constraintBottom_toTopOf="@+id/guideline3"
                app:layout_constraintEnd_toStartOf="@+id/guideline9"
                app:layout_constraintHorizontal_bias="0.537"
                app:layout_constraintStart_toStartOf="@+id/guideline8"
                app:layout_constraintTop_toTopOf="@+id/guideline3"
                app:layout_constraintVertical_bias="0.473"
                tools:text="Score:0" />
    
            <androidx.constraintlayout.widget.Guideline
                android:id="@+id/guideline8"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                app:layout_constraintGuide_percent="0.1" />
    
            <androidx.constraintlayout.widget.Guideline
                android:id="@+id/guideline9"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                app:layout_constraintGuide_percent="0.9" />
    
            <TextView
                android:id="@+id/textView4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="@dimen/huge_size"
                android:text="@{String.valueOf(data.leftNumber)}"
                app:layout_constraintBottom_toBottomOf="@+id/textView5"
                app:layout_constraintEnd_toStartOf="@+id/textView5"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toStartOf="@+id/guideline8"
                app:layout_constraintTop_toTopOf="@+id/textView5"
                tools:text="1" />
    
            <TextView
                android:id="@+id/textView5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="@dimen/huge_size"
                android:text="@{String.valueOf(data.operator)}"
                app:layout_constraintBottom_toBottomOf="@+id/textView6"
                app:layout_constraintEnd_toStartOf="@+id/textView6"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toEndOf="@+id/textView4"
                app:layout_constraintTop_toTopOf="@+id/textView6"
                tools:text="+" />
    
            <TextView
                android:id="@+id/textView6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="@dimen/huge_size"
                android:text="@{String.valueOf(data.rigthNumber)}"
                app:layout_constraintBottom_toBottomOf="@+id/textView7"
                app:layout_constraintEnd_toStartOf="@+id/textView7"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toEndOf="@+id/textView5"
                app:layout_constraintTop_toTopOf="@+id/textView7"
                tools:text="2" />
    
            <TextView
                android:id="@+id/textView7"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="="
                android:textSize="@dimen/huge_size"
                app:layout_constraintBottom_toBottomOf="@+id/textView8"
                app:layout_constraintEnd_toStartOf="@+id/textView8"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toEndOf="@+id/textView6"
                app:layout_constraintTop_toTopOf="@+id/textView8"
                tools:text="=" />
    
            <TextView
                android:id="@+id/textView8"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/Cal_Answer"
                android:textSize="@dimen/huge_size"
                app:layout_constraintBottom_toTopOf="@+id/guideline4"
                app:layout_constraintEnd_toStartOf="@+id/guideline9"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toEndOf="@+id/textView7"
                app:layout_constraintTop_toTopOf="@+id/guideline4" />
    
            <TextView
                android:id="@+id/textView9"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Your Answer:"
                android:textSize="@dimen/mid_size"
                app:layout_constraintBottom_toTopOf="@+id/guideline5"
                app:layout_constraintEnd_toStartOf="@+id/guideline9"
                app:layout_constraintStart_toStartOf="@+id/guideline8"
                app:layout_constraintTop_toTopOf="@+id/guideline5" />
    
            <Button
                android:id="@+id/button1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="1"
                android:textSize="@dimen/button_size"
                app:layout_constraintBottom_toTopOf="@+id/guideline10"
                app:layout_constraintEnd_toStartOf="@+id/button2"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toStartOf="@+id/guideline8"
                app:layout_constraintTop_toTopOf="@+id/guideline6" />
    
            <Button
                android:id="@+id/button2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="2"
                android:textSize="@dimen/button_size"
                app:layout_constraintBottom_toBottomOf="@+id/button1"
                app:layout_constraintEnd_toStartOf="@+id/button3"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toEndOf="@+id/button1"
                app:layout_constraintTop_toTopOf="@+id/button1" />
    
            <Button
                android:id="@+id/button3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="3"
                android:textSize="@dimen/button_size"
                app:layout_constraintBottom_toBottomOf="@+id/button2"
                app:layout_constraintEnd_toStartOf="@+id/guideline9"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toEndOf="@+id/button2"
                app:layout_constraintTop_toTopOf="@+id/button2" />
    
            <Button
                android:id="@+id/button4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="4"
                android:textSize="@dimen/button_size"
                app:layout_constraintBottom_toTopOf="@+id/guideline11"
                app:layout_constraintEnd_toStartOf="@+id/button5"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toStartOf="@+id/guideline8"
                app:layout_constraintTop_toTopOf="@+id/guideline10" />
    
            <Button
                android:id="@+id/button5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="5"
                android:textSize="@dimen/button_size"
                app:layout_constraintBottom_toBottomOf="@+id/button4"
                app:layout_constraintEnd_toStartOf="@+id/button6"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toEndOf="@+id/button4"
                app:layout_constraintTop_toTopOf="@+id/button4" />
    
            <Button
                android:id="@+id/button6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="6"
                android:textSize="@dimen/button_size"
                app:layout_constraintBottom_toBottomOf="@+id/button5"
                app:layout_constraintEnd_toStartOf="@+id/guideline9"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toEndOf="@+id/button5"
                app:layout_constraintTop_toTopOf="@+id/button5" />
    
            <Button
                android:id="@+id/button7"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="7"
                android:textSize="@dimen/button_size"
                app:layout_constraintBottom_toTopOf="@+id/guideline12"
                app:layout_constraintEnd_toStartOf="@+id/button8"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toStartOf="@+id/guideline8"
                app:layout_constraintTop_toTopOf="@+id/guideline11" />
    
            <Button
                android:id="@+id/button8"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="8"
                android:textSize="@dimen/button_size"
                app:layout_constraintBottom_toBottomOf="@+id/button7"
                app:layout_constraintEnd_toStartOf="@+id/button9"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toEndOf="@+id/button7"
                app:layout_constraintTop_toTopOf="@+id/button7" />
    
            <Button
                android:id="@+id/button9"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="9"
                android:textSize="@dimen/button_size"
                app:layout_constraintBottom_toBottomOf="@+id/button8"
                app:layout_constraintEnd_toStartOf="@+id/guideline9"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toEndOf="@+id/button8"
                app:layout_constraintTop_toTopOf="@+id/button8" />
    
            <Button
                android:id="@+id/clear"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Clear"
                android:textSize="@dimen/button_size"
                app:layout_constraintBottom_toTopOf="@+id/guideline7"
                app:layout_constraintEnd_toStartOf="@+id/button0"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toStartOf="@+id/guideline8"
                app:layout_constraintTop_toTopOf="@+id/guideline12" />
    
            <Button
                android:id="@+id/button0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="0"
                android:textSize="@dimen/button_size"
                app:layout_constraintBottom_toBottomOf="@+id/clear"
                app:layout_constraintEnd_toStartOf="@+id/submit"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toEndOf="@+id/clear"
                app:layout_constraintTop_toTopOf="@+id/clear" />
    
            <Button
                android:id="@+id/submit"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="OK"
                android:textSize="@dimen/button_size"
                app:layout_constraintBottom_toBottomOf="@+id/button0"
                app:layout_constraintEnd_toStartOf="@+id/guideline9"
                app:layout_constraintHorizontal_bias="0.5"
                app:layout_constraintStart_toEndOf="@+id/button0"
                app:layout_constraintTop_toTopOf="@+id/button0" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    </layout>
    

      成功页面:两个Textview一个Button来返回首页

    <?xml version="1.0" encoding="utf-8"?>
    <layout 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">
    
        <data>
            <variable
                name="data"
                type="com.example.calculation.MyViewModel" />
        </data>
    
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:context=".WinFragment">
    
            <androidx.constraintlayout.widget.Guideline
                android:id="@+id/guideline13"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                app:layout_constraintGuide_percent="0.1" />
    
            <androidx.constraintlayout.widget.Guideline
                android:id="@+id/guideline14"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                app:layout_constraintGuide_percent="0.35" />
    
            <ImageView
                android:id="@+id/imageView2"
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:contentDescription="@string/image_win"
                android:src="@drawable/ic_sentiment_satisfied_black_24dp"
                app:layout_constraintBottom_toTopOf="@+id/guideline14"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="@+id/guideline13" />
    
            <TextView
                android:id="@+id/textView10"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="恭喜你!创下新纪录"
                android:textSize="@dimen/bige_size"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="@+id/guideline14"
                app:layout_constraintVertical_bias="0.1" />
    
            <TextView
                android:id="@+id/textView11"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@{@string/New_Score(data.highScore)}"
                android:textSize="@dimen/bige_size"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/imageView2"
                app:layout_constraintVertical_bias="0.3"
                tools:text="你的成绩是:%d" />
    
            <Button
                android:id="@+id/button10"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="返回"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.498"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="@+id/guideline14"
                app:layout_constraintVertical_bias="0.5" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    </layout>
    

      失败页面:两个Textview一个Button来返回首页

    <?xml version="1.0" encoding="utf-8"?>
    <layout 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">
    
        <data>
            <variable
                name="data"
                type="com.example.calculation.MyViewModel" />
        </data>
    
        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            tools:context=".LoseFragment">
    
            <androidx.constraintlayout.widget.Guideline
                android:id="@+id/guideline15"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                app:layout_constraintGuide_percent="0.1" />
    
            <androidx.constraintlayout.widget.Guideline
                android:id="@+id/guideline16"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                app:layout_constraintGuide_percent="0.35" />
    
            <ImageView
                android:id="@+id/imageView3"
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:src="@drawable/ic_sentiment_dissatisfied_black_24dp"
                app:layout_constraintBottom_toTopOf="@+id/guideline16"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="@+id/guideline15" />
    
            <TextView
                android:id="@+id/textView13"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@{@string/New_Score(data.currentScore)}"
                android:textSize="@dimen/bige_size"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="@+id/guideline16"
                app:layout_constraintVertical_bias="0.3"
                tools:text="你的成绩是:%d" />
    
            <Button
                android:id="@+id/button11"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="返回"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintHorizontal_bias="0.498"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="@+id/guideline16"
                app:layout_constraintVertical_bias="0.5" />
    
            <TextView
                android:id="@+id/textView14"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="挑战失败!"
                android:textSize="@dimen/bige_size"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/imageView3"
                app:layout_constraintVertical_bias="0.1" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    </layout>
    

      

  • 相关阅读:
    图书助手冲刺第四天
    图书助手冲刺第三天
    图书助手冲刺第二天
    图书助手冲刺第一天
    《编写有效用例》读书笔记一
    《需求工程--软件建模与分析》读书笔记三
    《需求工程--软件建模与分析》读书笔记二
    《需求工程--软件建模与分析》读书笔记一
    《探索需求--设计前的质量》阅读笔记三
    “利益相关者”课堂讨论电子版
  • 原文地址:https://www.cnblogs.com/dixingchen/p/13063679.html
Copyright © 2020-2023  润新知