In questo tutorial vedremo come creare la nostra Bussola utilizzando l’ accelerometro e il sensore geomagnetico per determinare l’orientamento del dispositivo All interno del metodo onCreate instanziamo il gestore dei sensori e TexView. Il metodo onSensorChanged viene eseguito non appena un qualsiasi sensore del nostro dispositivo cambia di stato. onAccuracyChanged è il metodo che viene chiamato quando la precisione di un sensore cambia.
I layout sono elementi visivi di una attività in cui le componenti grafiche sono posizionate all’interno di una vista contenuta nei file XML della cartella res/layout. Ecco i layout maggiormente utilizzati:
Linear Layout permette di inserire i diversi elementi della pagina come Button, TextView, EditText,ecc… in righe orizzontali o verticali, dall’alto verso il basso e da sinistra verso destra. Nell’ esempio come si vede gli elementi sono inseriti in verticale con: android:orientation=”vertical”>. Per l’orientamento orizzontale inserire : android:orientation=”horizontal”>
RelativeLayout Questo layout è molto flessibile e viene utilizzato per personalizzare la vista che può essere specificata come relativa agli elementi fratelli o rispetto al genitore:
Framelayout FrameLayout è progettato per bloccare un’area sullo schermo per visualizzare un singolo elemento. Viene utilizzato per creare sovrapposizioni varie: <FrameLayout xmlns:android=”http://schemas.android.com/apk/res/android” android:layout_width=”match_parent” android:layout_height=”match_parent” android:orientation=”vertical”>
TableLayout TableLayout posiziona i componenti in righe e colonne.Ecco uno schema progettato per la calcolatrice: <?xml version=”1.0″ encoding=”utf-8″?> <LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android“ android:orientation=”vertical” android:layout_width=”fill_parent” android:layout_height=”fill_parent”>
Una WebView è un estensione della View classe che permette di visualizzare pagine web e integrare un sito web nella propria applicazione. Il motore della WebView risiede nella libreria WebKit in grado di eseguire Javascript. Il metodo loadUrl() fa sì che il motore del browser inizi il caricamento e visualizza la pagina web all’indirizzo specificato.
La ProgressBar è un componente UI che indica lo stato di avanzamento di un’operazione. La barra di avanzamento supporta due modalità : indeterminato e determinato. Si utilizza la modalità indeterminata per la barra di avanzamento quando non si sa quanto tempo richiederà l”operazione. Si utilizza la modalità determinata per la barra di avanzamento quando si vuole mostrare una quantità specifica di avanzamento. Per impostazione predefinita, una barra di avanzamento viene visualizzata come una ruota che gira.
Utilizzando il setProgress(int)metodo è possibile aggiornare la percentuale di avanzamento.La barra di avanzamento è piena quando il valore di avanzamento raggiunge 100.
Wardell Gray was born in Oklahoma City, the youngest of four children. His early childhood years were spent in Oklahoma, before moving with his family to Detroit in 1929.
In early 1935, Gray began attending Northeastern High School, and then transferred to Cass Technical High School, which is noted for having Donald Byrd, Lucky Thompson and Al McKibbon as alumni.
Una finestra di dialogo è una piccola finestra che richiede all’utente di prendere una decisione e viene normalmente utilizzata per eseguire un’azione prima di poter procedere.AlertDialog è una finestra di dialogo che può mostrare un titolo, fino a tre pulsanti, o un elenco di elementi selezionabili sia con CheckBox o RadioButton.Ecco un esempio:
public class MainActivity extends AppCompatActivity { String option; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
final String[]options = {“Data e ora”,”Accessibilita’”,”Account”}; AlertDialog.Builder builder= new AlertDialog.Builder(MainActivity. this); builder.setTitle(“Fai la tua scelta”); builder.setSingleChoiceItems(options,2,new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface dialog,int which){ option=options[which];
Un Toast è una notifica mostrata per un particolare intervallo di tempo che scompare dopo qualche istante. Le sue apparizioni improvvise ricordando il modo in cui il pane salta fuori dai tostapane. La classe Toast utilizza due metodi statici: public static Toast makeText(Context context, CharSequence text, int duration); public static Toast makeText(Context context,int resId,int duration); Per specificare la durata che può essere poco o tanto si utilizzano le costanti: LENGTH_SHORT LENGTH_LONG Ecco un esempio utilizzando una CheckBox che non è altro che un elenco di scelte con cui l’utente può effettuare selezioni multiple:
Context menu appaiono quando si mantiene il tocco per qualche istante sull’oggetto con cui si vuole interagire e consentono all’utente di selezionare più elementi per eseguire alcune azioni rapide all’interno di un’applicazione. Andiamo a creare un file activity_main.xml: <LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android” android:layout_width=”match_parent” android:layout_height=”match_parent” android:id=”@+id/linearLayout” android:gravity=”center”>
Adesso andiamo a lavorare con il file MainActivity.java aggiungendo il codice per visualizzare ContextMenu. Ogni volta che l’app si avvia, facendo un lungo clic sul testo “Hello world!” viene visualizzato il menu con le opzioni che abbiamo inserito nel file context.XML:
Per attivare la torcia in Android, è necessario utilizzare la classe CameraManager. Nel metodo onCreate() otteniamo l’ oggetto CameraManager . Quindi impostiamo OnClickListener() per il pulsante di accensione e il metodo CameraManager.setTorchMode() per attivare o disattivare la modalità torcia dell’unità flash: