Passa ai contenuti principali

Android Studio - Fullscreen Activity

Fullscreen Activity

Fullscreen Activity è un tipo di progetto vuoto che una volta avviato sul dispositivo viene creato a tutto schermo, poi è sufficiente un tap sul display per andare in visualizzazione normale.
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dm.tutorialfullscreenactivity">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".FullscreenActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name"
android:theme="@style/FullscreenTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
activity_fullscreen.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0099cc"
tools:context=".FullscreenActivity">
<!-- La vista principale a schermo intero. Questo può essere sostituito con qualunque vista
         è necessario per presentare i tuoi contenuti, ad es. VideoView, SurfaceView,
         TextureView, ecc. -->
<!--Aggiunta di un TextView (casella di testo)-->
<TextView
android:id="@+id/fullscreen_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true"
android:textColor="#33b5e5"
android:textStyle="bold"
android:textSize="50sp"
android:gravity="center"
android:text="@string/dummy_content"/>
<!-- Questo FrameLayout inserisce i layout figli in base alle finestre di sistema che utilizzano
         Android: fitsSystemWindows. -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<LinearLayout
android:id="@+id/fullscreen_content_controls"
style="?metaButtonBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:background="@color/black_overlay"
android:orientation="horizontal"
tools:ignore="UselessParent">
<!--Aggiunta di un Button (pulsante) -->
<Button
android:id="@+id/dummy_button"
style="?metaButtonBarButtonStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/dummy_button"/>
</LinearLayout>
</FrameLayout>
</FrameLayout>
FullscreenActivity.kt
package com.dm.tutorialfullscreenactivity
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.os.Handler
import android.view.View
import kotlinx.android.synthetic.main.activity_fullscreen.*
/**
* Un'attività a schermo intero di esempio che mostra e nasconde l'interfaccia utente del sistema (ad es.
* barra di stato e barra di navigazione / sistema) con interazione dell'utente.
*/
class FullscreenActivity : AppCompatActivity() {
private val mHideHandler = Handler()
private val mHidePart2Runnable = Runnable {
// Rimozione ritardata di stato e barra di navigazione
// Nota che alcune di queste costanti sono nuove a partire da API 16 (Jelly Bean)
// e API 19 (KitKat). È sicuro usarli, poiché sono allineati
// in fase di compilazione e non influenza i dispositivi precedenti.
fullscreen_content.systemUiVisibility =
View.SYSTEM_UI_FLAG_LOW_PROFILE or
View.SYSTEM_UI_FLAG_FULLSCREEN or
View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
}
private val mShowPart2Runnable = Runnable {
// Visualizzazione ritardata degli elementi dell'interfaccia utente
supportActionBar?.show()
fullscreen_content_controls.visibility = View.VISIBLE
}
private var mVisible: Boolean = false
private val mHideRunnable = Runnable { hide() }
/**
* Tocca listener da utilizzare per i controlli dell'interfaccia utente nel layout per ritardare a nascondere il
* interfaccia utente di sistema. Questo per evitare che il comportamento stridente dei controlli scompaia
* mentre interagisci con l'interfaccia utente dell'attività.
*/
private val mDelayHideTouchListener = View.OnTouchListener { _, _ ->
if (AUTO_HIDE) {
delayedHide(AUTO_HIDE_DELAY_MILLIS)
}
false
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_fullscreen)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
mVisible = true
// Imposta l'interazione dell'utente per mostrare o nascondere manualmente l'interfaccia utente del sistema.
fullscreen_content.setOnClickListener { toggle() }
// Quando interagisci con i controlli dell'interfaccia utente, ritarda qualsiasi hide () pianificato
// per impedire che il comportamento stridente dei controlli scompaia
// mentre interagisci con l'interfaccia utente.
dummy_button.setOnTouchListener(mDelayHideTouchListener)
}
override fun onPostCreate(savedInstanceState: Bundle?) {
super.onPostCreate(savedInstanceState)
// Attiva l' hide () iniziale poco dopo che l'attività è stata
// creata, per suggerire brevemente all'utente il controllo dell'interfaccia utente
// è disponibile.
delayedHide(100)
}
private fun toggle() {
if (mVisible) {
hide()
} else {
show()
}
}
private fun hide() {
// Nascondi prima l'interfaccia utente
supportActionBar?.hide()
fullscreen_content_controls.visibility = View.GONE
mVisible = false
// Pianificare un eseguibile per rimuovere lo stato e la barra di navigazione dopo un ritardo
mHideHandler.removeCallbacks(mShowPart2Runnable)
mHideHandler.postDelayed(mHidePart2Runnable, UI_ANIMATION_DELAY.toLong())
}
private fun show() {
// Mostra la barra di sistema
fullscreen_content.systemUiVisibility =
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
mVisible = true
// Pianificare un eseguibile per visualizzare gli elementi dell'interfaccia utente dopo un ritardo
mHideHandler.removeCallbacks(mHidePart2Runnable)
mHideHandler.postDelayed(mShowPart2Runnable, UI_ANIMATION_DELAY.toLong())
}
/**
* Elimina una chiamata a hide () in [delayMillis], cancellando qualsiasi
* chiamata precedentemente programmata.
*/
private fun delayedHide(delayMillis: Int) {
mHideHandler.removeCallbacks(mHideRunnable)
mHideHandler.postDelayed(mHideRunnable, delayMillis.toLong())
}
companion object {
/**
* Se l'interfaccia utente del sistema deve essere nascosta automaticamente dopo
* [AUTO_HIDE_DELAY_MILLIS] millisecondi.
*/
private val AUTO_HIDE = true
/**
* Se è impostato [AUTO_HIDE], il numero di millisecondi da attendere dopo
* interazione dell'utente prima di nascondere l'interfaccia utente del sistema.
*/
private val AUTO_HIDE_DELAY_MILLIS = 3000
/**
* Alcuni dispositivi meno recenti richiedono un piccolo ritardo tra gli aggiornamenti del widget dell'interfaccia utente
* e una modifica dello stato e della barra di navigazione.
*/
private val UI_ANIMATION_DELAY = 300
}
}

Download Project
Download file APK
Visualizza su


Commenti

Post popolari in questo blog

Android Studio - Impostare lingua app

In questo articolo vedremo come poter selezionare la lingua all'interno della nostra app. Nel precedente articolo in cui si parlava del file string.xml , la lingua dell'app veniva selezionata automaticamente in base alle impostazioni del dispositivo, mentre qui vedremo come poter selezionare a proprio piacimento la lingua che dovrà avere la nostra app indipendentemente dall'impostazione del dispositivo. Per prima cosa creare il layout Ecco un esempio do come può essere il file activity_main.xml Ora creare le stringhe di testo all'interno del file string.xml Ora creare la traduzione del file string.xml nelle varie lingua come descritto in questo articolo Il risultato sarà una serie di file string.xml delle varie lingue impostate. Ora queste di seguito sono tre funzioni che servono per: selezione della lingua salvataggio della selezione nelle preferenze dell'app caricamento della lingua quando si avvia l'app Ecco come si presenta il file Main...

Android Studio - Rinominare il progetto

Rinominare il progetto Android Studio ATTENZIONE!: non eseguire questa procedura se l'app è stata pubblicata su Google Play Store Quando si vuole cambiare nome al progetto: nome cartella in cui è contenuto il progetto package name bisogna eseguire questi passaggi: Andare nella cartella dove è contenuto il progetto Creare una copia del progetto in questione Rinominare la cartella copiata con il nome dell'app (non usare spazi tra le parole) Ora è necessario dire ad Android Studio il nome del nuovo progetto  Aprire Android Studio Aprire il progetto creato in precedenza Una volta caricato il progetto cliccare Build Cliccare Clean Project Attendere che venga eseguito il processo di "pulitura" Cliccare ancora su Build Cliccare su Rebuild Project Attendere che venga ricostruito il progetto Ora aprire la cartella app fino a visualizzare la cartella java Cliccare sull'ingranaggio  Deselezionare la voce Compact Middle Packa...

Arduino - Lettura tensione potenziometro e display LCD

Leggere il valore di un poteziometro (parte 2) Oggi vedremo come leggere il valore in tensione di un potenziometro collegato al pin Analogico A0 di Arduino.