Skip to content

Commit

Permalink
Crear un cronometro de cuenta regresiva en Android Studio [29]
Browse files Browse the repository at this point in the history
  • Loading branch information
programadornovato committed Feb 5, 2021
1 parent d236726 commit 8c1869b
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 71 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ package com.programadornovato.miprimerproyecto
import android.content.DialogInterface
import android.content.Intent
import android.graphics.Bitmap
import android.media.RingtoneManager
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.CountDownTimer
import android.view.View
import android.webkit.*
import android.widget.*
Expand All @@ -14,54 +16,30 @@ import kotlin.math.PI
import kotlin.math.round

class MainActivity : AppCompatActivity() {
private var txtURL:EditText?=null
private var navegador:WebView?=null
private var pbCarga:ProgressBar?=null
private var errorPagina=false
private var txtTiempo:EditText?=null
private var tvCuentaAtras:TextView?=null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

txtURL=findViewById(R.id.txtURL)
navegador=findViewById(R.id.navegador)
pbCarga=findViewById(R.id.pbCarga)
navegador?.clearCache(false)
navegador?.settings?.javaScriptEnabled=true

navegador?.webViewClient = object : WebViewClient(){
override fun onReceivedError(
view: WebView?,
request: WebResourceRequest?,
error: WebResourceError?
) {
super.onReceivedError(view, request, error)
errorPagina=true
Toast.makeText(this@MainActivity,"Error al cargar: $error",Toast.LENGTH_LONG).show()
txtTiempo=findViewById(R.id.txtTiempo)
tvCuentaAtras=findViewById(R.id.tvCuentaAtras)
}
fun play(view: View){
var tiempoSegundos=txtTiempo?.text.toString().toLong()
var tiempoMilisegundos=tiempoSegundos*1000
object : CountDownTimer(tiempoMilisegundos,1000){
override fun onFinish() {
val notificacion=RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE)
val r=RingtoneManager.getRingtone(this@MainActivity,notificacion)
r.play()
this.cancel()
}

override fun onPageFinished(view: WebView?, url: String?) {
super.onPageFinished(view, url)
if(errorPagina==false){
Toast.makeText(this@MainActivity,"La pagina termino de cargar",Toast.LENGTH_LONG).show()
}
}
}
navegador?.webChromeClient = object : WebChromeClient(){
override fun onProgressChanged(view: WebView?, newProgress: Int) {
super.onProgressChanged(view, newProgress)
pbCarga?.progress=0
pbCarga?.visibility=View.VISIBLE
pbCarga?.incrementProgressBy(newProgress)
if(newProgress==100){
pbCarga?.visibility=View.GONE
}
override fun onTick(millisUntilFinished: Long) {
val tiempoSegundos=(millisUntilFinished/1000).toInt()+1
tvCuentaAtras?.text=tiempoSegundos.toString().padStart(2,'0')
}
}

}
fun cargar(view: View){
errorPagina=false
var url=txtURL?.text.toString()
navegador?.loadUrl(url)
}.start()
}
}
65 changes: 36 additions & 29 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,43 +6,50 @@
android:layout_height="match_parent"
tools:context=".MainActivity">

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CRONOMETRO"
android:textSize="36sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<EditText
android:id="@+id/txtURL"
android:layout_width="314dp"
android:layout_height="51dp"
android:id="@+id/txtTiempo"
android:layout_width="239dp"
android:layout_height="75dp"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="56dp"
android:ems="10"
android:hint="Humano a que pagina quieres ir!!"
android:inputType="textPersonName"
android:text="https://www.programadornovato.com"
android:inputType="number"
android:text="00"
android:textSize="24sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toBottomOf="@+id/textView" />

<ImageButton
android:id="@+id/imageButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="cargar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@android:drawable/ic_media_next" />

<WebView
android:id="@+id/navegador"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
android:id="@+id/btnPlay"
android:layout_width="84dp"
android:layout_height="75dp"
android:layout_marginTop="56dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:onClick="play"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/pbCarga" />
app:layout_constraintTop_toBottomOf="@+id/textView"
app:srcCompat="@android:drawable/ic_media_play" />

<ProgressBar
android:id="@+id/pbCarga"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="0dp"
<TextView
android:id="@+id/tvCuentaAtras"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
android:layout_marginTop="84dp"
android:text="00"
android:textSize="76sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/txtURL" />
app:layout_constraintTop_toBottomOf="@+id/txtTiempo" />
</androidx.constraintlayout.widget.ConstraintLayout>

0 comments on commit 8c1869b

Please sign in to comment.