Latest web development tutorials

Risorse Android (Risorse) gestione

Ci sono molte cose utilizzate per costruire un ottimo Android. Oltre alla codifica l'applicazione, è necessario concentrarsi su una varietà di risorse, come ad esempio si utilizza una varietà di contenuti statici, come ad esempio immagini bitmap, colori, definizione del layout, stringhe di interfaccia utente, animazioni e così via. Queste risorse sono generalmente collocati in res / sottodirectory standalone del progetto.

Questa sezione del tutorial imparare a organizzare le risorse dell'applicazione, specificare risorse alternative, e accedervi nell'applicazione.


risorse organizzative in Eclipse

Avrete bisogno di essere collocato in ogni risorsa sotto specifica directory del vostro progetto res / directory. Ad esempio, si tratta di un semplice progetto a livello di file:

MyProject/
    src/  
        MyActivity.java  
    res/
        drawable/  
            icon.png  
        layout/  
            activity_main.xml
            info.xml
        values/  
            strings.xml 

res / directory contiene tutte le risorse in varie sottodirectory. Ecco una risorsa immagine, due risorse layout e un file di risorse di stringa. La seguente tabella fornisce una dettagliata nelle risorse di supporto / directory res progetto.

elenco Tipo di risorsa
Anim / file XML che definisce la proprietà di animazione. Essi vengono salvati in res / Anim / cartella, in base al tipo di accesso R.anim
colore / file XML che definisce l'elenco di stato di colore. Essi vengono salvati in res / colore / cartella, in base al tipo di accesso R.color
drawable / I file di immagine, ad esempio .png, .jpg, .gif, o un file XML, viene compilato come bitmap, l'elenco dello stato, le forme, le immagini animate. Essi vengono salvati in res / drawable / cartella, in base al tipo di accesso R.drawable
layout / Personalizzato UI layout di file XML. Essi vengono salvati in res / layout / cartella, in base al tipo di accesso R.layout
MENU / I file XML di menu applicazioni personalizzate, come ad esempio il menu Opzioni, menu contestuali, sottomenu. Essi vengono salvati in res / menu / cartella, in base al tipo di accesso R.menu
RAW / Tutti i file vengono salvati nella loro forma originale. Dobbiamo R.raw.filename ID risorsa denominata, per aprire il file raw chiamando Resource.openRawResource ()
I valori / file XML contengono valori semplici (come stringhe, interi, colore, ecc). Ecco alcune risorse sotto le convenzioni sui nomi di cartelle. arrays.xml per conto di una serie di risorse, attraverso R.array tipo di accesso; integers.xml rappresenta un numero intero di risorse accede tramite R.integer classe; risorse bools.xml a nome valori booleani, tipo di accesso da R.bool; risorse colors.xml a nome del colore, si accede tramite classe R.color; dimens.xml rappresentanti dimensione dei valori, attraverso R.dimen tipo di accesso; strings.xml rappresenta una risorsa di tipo stringa, attraverso R.string tipo di accesso; rappresentanti styles.xml risorsa stile, dal tipo di accesso R.style
xml / Chiamando Resources.getXML () per leggere file XML arbitrari in fase di esecuzione. I vari file di configurazione possono essere salvati runtime qui

risorse alternative

L'applicazione deve fornire risorse per sostenere una configurazione alternativa per un dispositivo specifico. Ad esempio, è necessario fornire un quadro alternativo di risorse per diverse risoluzioni dello schermo, fornendo un'alternativa risorse di tipo stringa per le diverse lingue. In fase di esecuzione, Android rileva la configurazione del dispositivo corrente, e caricare le risorse adeguate per un'applicazione.

Per identificare un insieme di risorse alternative per la configurazione specifica, seguendo le fasi di:

  • Creare un nuovo res directory / giù per <resource_name> _ <config_qualifier> sono chiamati. Qui resources_name tutte le risorse citati nella tabella, come il layout e le immagini. qualificazione determinerà quali risorse utilizzare la configurazione personalizzata. È possibile consultare la documentazione ufficiale per un elenco completo dei diversi tipi di qualificazione risorse.
  • Salvataggio di risorse alternative in risposta a questa directory. Questi file di risorse deve mostrare il nome del file di risorse predefinito è coerente con i seguenti esempi, tuttavia, questi documenti determineranno il contenuto della sostituzione. Per esempio: mentre il file di immagine il nome stesso, ma la risoluzione dello schermo della risoluzione dell'immagine sarà più alto.

Ecco un esempio, per specificare l'immagine di default della sostituzione immagine sullo schermo e ad alta risoluzione.

MyProject/
   src/
    main/
    java/
       MyActivity.java  
       res/
          drawable/  
            icon.png
            background.png
        drawable-hdpi/  
            icon.png
            background.png  
        layout/  
            activity_main.xml
            info.xml
        values/  
            strings.xml

Ecco un altro esempio, per specificare la lingua layout predefinito e layout alternativi lingua araba.

MyProject/
   src/
    main/
    java/
       MyActivity.java  
      res/
         drawable/  
            icon.png
            background.png
        drawable-hdpi/  
            icon.png
            background.png  
        layout/  
            activity_main.xml
            info.xml
        layout-ar/
            main.xml
        values/  
            strings.xml

L'accesso alle risorse

Nello sviluppo di applicazioni, abbiamo bisogno di accedere a risorse definite, sia attraverso il codice o tramite file XML. Le sezioni seguenti descrivono come accedere a queste risorse separatamente in due scenari.

Nel codice per accedere alle risorse

Quando l'applicazione Android è compilato per generare una classe R, che contiene l'ID e tutte le res / risorse di directory. È possibile utilizzare la classe R, + dal nome della risorsa sottoclasse o utilizzare direttamente l'ID di risorsa per accedere alle risorse.

Esempi

res / drawable di accesso / myimage.png, e impostare il ImageView, si può usare il seguente codice:

ImageView imageView = (ImageView) findViewById(R.id.myimageview);
imageView.setImageResource(R.drawable.myimage);

La prima riga di codice qui per ottenere R.id.myimageview definito myimageview di ImageView nel file di layout. La seconda linea con R.drawable.myimage per ottenere l'immagine in res / drawable in una sottodirectory chiamata myimage.

Esempi

Si consideri un esempio in cui res / valori / strings.xml definito come segue:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string  name="hello">Hello, World!</string>
</resources>

Ora è possibile utilizzare l'ID del msg oggetto di TextView ID di risorsa per impostare il testo, come segue:

TextView msgTextView = (TextView) findViewById(R.id.msg);
msgTextView.setText(R.string.hello);

Esempi

Si consideri la seguente definizione della res layout / layout / activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent" 
   android:orientation="vertical" >

   <TextView android:id="@+id/text"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Hello, I am a TextView" />

   <Button android:id="@+id/button"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Hello, I am a Button" />

</LinearLayout>

Il codice di applicazione caricherà il layout attività, onCreate () metodo come segue:

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <color name="opaque_red">#f00</color>
   <string name="hello">Hello!</string>
</resources>

L'accesso in XML

Si consideri il seguente codice XML file di risorse res / valori / strings.xml, che contiene una risorsa colore e una risorsa di stringa -

<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:textColor="@color/opaque_red"
    android:text="@string/hello" />

Ora, è possibile utilizzare queste risorse nel seguente file di layout per impostare il colore del testo e il contenuto del testo:

<code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;EditText xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:textColor="@color/opaque_red"
    android:text="@string/hello" /&gt;
</code>

Ora, se si torna alla sezione precedente per spiegare il "Ciao Mondo!" Istanza, posso confermare che si in questa sezione tutti hanno una migliore comprensione del concetto. Perciò, vi raccomando vivamente di tornare a guardare gli esempi precedenti, e io uso una visione diversa del l'uso di base delle risorse.