Создание формы с таймером

This commit is contained in:
Надежда Емцова 2025-04-28 19:05:24 +03:00
parent 0642d1edd2
commit ca52cec700
24 changed files with 399 additions and 9 deletions

3
.idea/.gitignore generated vendored Normal file
View File

@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

6
.idea/AndroidProjectSystem.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AndroidProjectSystem">
<option name="providerId" value="com.android.tools.idea.GradleProjectSystem" />
</component>
</project>

6
.idea/compiler.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="21" />
</component>
</project>

10
.idea/deploymentTargetSelector.xml generated Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetSelector">
<selectionStates>
<SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" />
</SelectionState>
</selectionStates>
</component>
</project>

19
.idea/gradle.xml generated Normal file
View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="CHOOSE_PER_TEST" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>

6
.idea/kotlinc.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="KotlinJpsPluginSettings">
<option name="version" value="2.0.21" />
</component>
</project>

10
.idea/migrations.xml generated Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectMigrations">
<option name="MigrateToGradleLocalJavaHome">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
</component>
</project>

10
.idea/misc.xml generated Normal file
View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>

6
.idea/render.experimental.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RenderSettings">
<option name="showDecorations" value="true" />
</component>
</project>

17
.idea/runConfigurations.xml generated Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="com.intellij.execution.junit.AbstractAllInDirectoryConfigurationProducer" />
<option value="com.intellij.execution.junit.AllInPackageConfigurationProducer" />
<option value="com.intellij.execution.junit.PatternConfigurationProducer" />
<option value="com.intellij.execution.junit.TestInClassConfigurationProducer" />
<option value="com.intellij.execution.junit.UniqueIdConfigurationProducer" />
<option value="com.intellij.execution.junit.testDiscovery.JUnitTestDiscoveryConfigurationProducer" />
<option value="org.jetbrains.kotlin.idea.junit.KotlinJUnitRunConfigurationProducer" />
<option value="org.jetbrains.kotlin.idea.junit.KotlinPatternConfigurationProducer" />
</set>
</option>
</component>
</project>

6
.idea/vcs.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@ -12,6 +12,9 @@
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/Theme.TimerT" android:theme="@style/Theme.TimerT"
tools:targetApi="31"> tools:targetApi="31">
<activity
android:name=".timer"
android:exported="false" />
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:exported="true"> android:exported="true">

View File

@ -1,6 +1,8 @@
package com.example.timert package com.example.timert
import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.widget.Button
import androidx.activity.enableEdgeToEdge import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
@ -16,5 +18,12 @@ class MainActivity : AppCompatActivity() {
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets insets
} }
var button: Button = findViewById(R.id.button2)
button.setOnClickListener{
val intent = Intent(this,timer::class.java)
startActivity(intent)
}
} }
} }

View File

@ -0,0 +1,62 @@
package com.example.timert
import android.app.AlertDialog
import android.content.Intent
import android.media.Image
import android.os.Bundle
import android.widget.Button
import android.widget.ImageButton
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
class timer : AppCompatActivity() {
private var isPlay = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContentView(R.layout.activity_timer)
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}
val button: ImageButton = findViewById(R.id.stop)
button.setOnClickListener {
AlertDialog.Builder(this)
.setTitle("Сброс таймера")
.setMessage("Закрыть таймер и перейти на главную страницу?")
.setPositiveButton("Да") { _, _ ->
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)
}
.setNegativeButton("Нет") { dialog, _ ->
dialog.dismiss()
}
.show()
}
val pauseButton: ImageButton = findViewById(R.id.play)
pauseButton.setOnClickListener {
if (isPlay) {
pauseButton.setImageResource(R.drawable.icon_play)
// здесь ещё можно возобновить таймер
} else {
pauseButton.setImageResource(R.drawable.icon_pause)
// здесь можно остановить таймер
}
isPlay = !isPlay
}
}
}

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="@color/colorGradientBlueStart"
android:endColor="@color/colorGradientBlueStop"
android:angle="270" />
</shape>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="@color/colorGradientPinkStart"
android:endColor="@color/colorGradientPinkStop"
android:angle="270" />
</shape>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="@color/colorGradientGreenStart"
android:endColor="@color/colorGradientGreenStop"
android:angle="270" />
</shape>

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M6,19h4L10,5L6,5v14zM14,5v14h4L18,5h-4z"/>
</vector>

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M8,5v14l11,-7z"/>
</vector>

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M6,6h12v12H6z"/>
</vector>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="@color/colorGradientPinkStart"
android:endColor="@color/colorGradientPinkStop"
android:angle="270" />
</shape>

View File

@ -7,13 +7,17 @@
android:layout_height="match_parent" android:layout_height="match_parent"
tools:context=".MainActivity"> tools:context=".MainActivity">
<TextView <LinearLayout
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:text="Hello World!" android:orientation="horizontal">
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" <Button
app:layout_constraintStart_toStartOf="parent" android:id="@+id/button2"
app:layout_constraintTop_toTopOf="parent" /> android:layout_width="382dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/gradient_pink"
tools:context=".timer">
<TextView
android:id="@+id/textView"
android:layout_width="409dp"
android:layout_height="57dp"
android:layout_marginTop="50dp"
android:gravity="center"
android:text="Тренировка"
android:textAlignment="center"
android:textColor="#040405"
android:textSize="34sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:id="@+id/actions"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginBottom="100dp"
android:gravity="center"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
tools:layout_editor_absoluteX="16dp">
<ImageButton
android:id="@+id/play"
android:layout_width="60dp"
android:layout_height="60dp"
android:background="#00FFFFFF"
app:srcCompat="@drawable/icon_play" />
<ImageButton
android:id="@+id/stop"
android:layout_width="60dp"
android:layout_height="60dp"
android:background="#00FFFFFF"
app:srcCompat="@drawable/icon_stop" />
</LinearLayout>
<LinearLayout
android:id="@+id/main_timer"
android:layout_width="match_parent"
android:layout_height="360dp"
android:layout_marginBottom="99dp"
android:gravity="center"
android:orientation="vertical"
app:layout_constraintBottom_toTopOf="@+id/actions"
tools:layout_editor_absoluteX="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="54dp"
android:orientation="horizontal">
<TextView
android:id="@+id/textView10"
android:layout_width="548dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="Подход №"
android:textAlignment="textEnd"
android:textColor="#D0CBCB"
android:textSize="34sp" />
<TextView
android:id="@+id/number_set"
android:layout_width="400dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text=" 1"
android:textAlignment="viewStart"
android:textColor="#D0CBCB"
android:textSize="34sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="71dp"
android:orientation="horizontal">
<TextView
android:id="@+id/textView11"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="Упражнение"
android:textAlignment="textEnd"
android:textColor="#D0CBCB"
android:textSize="34sp" />
<TextView
android:id="@+id/num_exercise"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:text=" 1"
android:textAlignment="viewStart"
android:textColor="#D0CBCB"
android:textSize="34sp" />
</LinearLayout>
<TextView
android:id="@+id/time"
android:layout_width="163dp"
android:layout_height="153dp"
android:layout_gravity="center"
android:gravity="center"
android:text="00:00"
android:textColor="#FFFFFF"
android:textSize="60sp" />
<TextView
android:id="@+id/work"
android:layout_width="match_parent"
android:layout_height="70dp"
android:gravity="center"
android:text="Работа"
android:textAlignment="center"
android:textColor="#D0CBCB"
android:textSize="34sp" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -2,4 +2,14 @@
<resources> <resources>
<color name="black">#FF000000</color> <color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color> <color name="white">#FFFFFFFF</color>
<color name="colorGradientPinkStart">#F54EA2</color>
<color name="colorGradientPinkStop">#FF7676</color>
<color name="colorGradientGreenStart">#42E695</color>
<color name="colorGradientGreenStop">#3BB2B8</color>
<color name="colorGradientBlueStart">#17EAD9</color>
<color name="colorGradientBlueStop">#6078EA</color>
</resources> </resources>