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
activity_fullscreen.xml
FullscreenActivity.kt
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
Posta un commento