Documente Academic
Documente Profesional
Documente Cultură
Ce sunt target-urile?
După ce ați creat AVD-ul, îl puteți selecta și porni. Apăsați Start. Observați în fereastra de Launch
Options un checkbox: Scale display to real size. Înainte să testați un proiect pe un telefon real cu
Android, testați-l măcar o dată în emulatorul scalat la dimensiunea reală. De multe ori se întâmplă ca
butoanele sau textul să fie prea mici ca
să se vadă bine în realitate.
package primul.meu.proiect;
import android.app.Activity;
import android.os.Bundle;
Dacă rulați acum proiectul (Run As -> Android Application), o să vă apară pe ecranul AVD-ului textul
“Hello World, Test”. Test va fi înlocuit cu numele activității create de voi.
package primul.meu.proiect;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
Oricum, acest mod de interfață nu îl vom folosi prea des (de fapt,
deloc :p ). Vom folosi XML – Based Layouts.
2. Layouturi XML
Text View
Ce am făcut până acum reprezintă, practic, scrierea din cod a unei interfețe. Nu e prea plăcut.
Android ofera o alternativă pentru asta: layouturi bazate pe fișiere XML.
Varianta cu XML pentru aplicația de mai sus (prima, cea fără Bazinga) este
Structura generală a unui XML Android este simplă: un arbore de elemente XML, in care fiecare nod
reprezintă numele unui View Class.
Butoane
Button este o subclasă a clasei TextView, deci tot ce era valabil pentru TextView-uri este valabil și
pentru butoane. Pentru a lega o acțiune de un buton, e suficient să avem o metodă în activitate de
genul
<Button
android:onClick=”someMethod”
...
/>
Imagini
Pentru a adăuga imagini, avem două variante: ImageView și ImageButton. Acestea sunt analoage lui
TextView și Button.
Câmpuri
Câmpurile sunt implementate cu EditText, care e o subclasă a TextView. Pe lângă toate proprietățile
standard ale TextView, EditText mai are și alte proprietăți, cum ar fi android:autoText,
android:capitalize, android:digits sau android:singleLine.
package textg.xml;
import android.app.Activity;
import android.os.Bundle;
import android.widget.EditText;
public class hello_cu_xml extends Activity {
/** Called when the activity is first
created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
EditText fld = (EditText)
findViewById(R.id.field);
fld.setText("Our whole universe was in a
hot dense state," +
"Then nearly fourteen billion
years ago expansion started, wait..." +
"The Earth began to cool," +
"The autotrophs began to
drool," +
"Neanderthals developed
tools," +
"We built a wall (we built the
pyramids)," +
"Math, science, history,
unravelling the mysteries," +
"That all started with the big bang!");
}
Layout
Avem mai multe tipuri de layout-uri posibile: linear layout, relative layout, table layout, grid view,
tab layout, list view..
Linear Layout
Linear Layout este un mod de vizualizare (view) care afișează elementele sale într-o direcție, liniar,
fie orinzontal, fie vertical.
Pentru a vedea cum se creează un Linear Layout, vom folosi următorul exemplu:
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<TextView
android:text="red"
android:gravity="center_horizontal"
android:background="#aa0000"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"/>
<TextView
android:text="green"
android:gravity="center_horizontal"
android:background="#00aa00"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"/>
<TextView
android:text="blue"
android:gravity="center_horizontal"
android:background="#0000aa"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"/>
<TextView
android:text="yellow"
android:gravity="center_horizontal"
android:background="#aaaa00"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<TextView
android:text="row one"
android:textSize="15pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView
android:text="row two"
android:textSize="15pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView
android:text="row three"
android:textSize="15pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<TextView
android:text="row four"
android:textSize="15pt"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
</LinearLayout>
XML-ul conține un Linear Layout “rădăcină”, cu orientarea verticală. Adică toți “copiii” lui vor fi
afișați pe verticală, în jos. Primul fiu este un nou Linear Layout cu orientare orizontală, care conține
patru TextView-uri, cu culori diferite. Al doilea fiu este un Linear Layout cu orientare verticală, ce
conține 4 TextView-uri, unul sub altul.
Ce reprezintă weight?
Se poate întâmpla ca două widget-uri să împartă spațiul liber disponibil. Proprietatea weight indică
proporția de spațiu liber care va fi alocată unui widget. Daca setam android:layout_weight
la aceeași valoare nenulă pentru două widgeturi (de ex. 1), spațiul liber va fi împărțit în mod egaș
între ele. Dacă un widget va avea weight 1, iar celălalt 2, al doilea va avea de două ori mai mult
spațiu decât primul widget. Valoarea default pentru weight este 0.
Ce reprezinta gravity?
android:gravity=”...”
br
br
br
br
Aplicație:
Obțineți din cod XML, fără imagini, următorul layout: