Escolar Documentos
Profissional Documentos
Cultura Documentos
Interface gráfica
2
Criar Activity
3
Activity > Estrutura base
super.onCreate(savedInstanceState);
Para fazer Override a um método, podemos na // The activity is being created.
4
Activity > Arrancar
Onde,
• Contexto representa o contexto onde a Activity será inicializada, neste caso será sempre
o contexto da nossa aplicação que pode ser obtido simplesmente através do “this”
• ACTIVITY.class, representa a classe da Activity que pretendemos inicializar
5
Activity > Arrancar
Podemos também passar argumentos para a nova Activity utilizando o Intent, o qual
funciona da mesma forma que um objeto do tipo “Key -> Value”
Onde,
• A “key” é “NUMERO_TELEFONE” e o “value” é “+ 351 98 000 00 00”
6
Activity > Arrancar
Questão
• Qual é o argumento que terei de passar ao método para obter o número de
telefone colocado como extra no Intent do slide anterior?
7
Activity > Terminar
• NOMEACTIVITY.this.finish();
8
Interface gráfica
9
Interface gráfica
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I am a TextView"/>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I am a Button"/>
</LinearLayout>
10
Layout > Tipos
FrameLayout
LinearLayout
RelativeLayout
TableLayout
11
Layout > Parâmetros mais utilizados
android:layout_width e android:layout_height
• Definem o comprimento e altura do componente gráfico
• match_parent e wrap_content são os parâmetros mais utilizados,
contudo pode ser utilizada uma unidade de comprimento fixa
12
Layout > Parâmetros mais utilizados
android:layout_width= match_parent
android:layout_height= wrap_content
android:layout_width= wrap_content
android:layout_height= wrap_content
13
Layout > Parâmetros mais utilizados
android:orientation
• Orientação do componente, normalmente utilizado no LinearLayout
• Valores - vertical ou horizontal
android:id
• Define um ID ao componente para ser referenciado noutras partes da aplicação
• android:id=“@+id/MEU_ID” – adiciona ao ficheiro R.java o ID MEU_ID
• android:id=“@id/MEU_ID” – faz referencia a um objeto existente
android:text
• Atribui ao objeto o texto pretendido
• android:text=“@strings/LABEL_TEXT”
android:textColor = “@color/opaque_blue”
• Atribui uma cor ao texto do componente gráfico
14
Layout > Parâmetros mais utilizados
android:gravity
• Como o conteúdo do objeto está alinhado horizontalmente ou verticalmente
• android:gravity=“center_vertical”
android:layout_gravity
• Posicionamento da “View” relativamente ao seu parente
• android:layout_gravity=“center_vertical”
android:padding
• Espaçamento dentro do objeto para a sua borda
• android:paddingBottom=“2dp”, android:paddingTop=“3dp”
android:layout_margin
• Espaçamento do componente gráfico para com os outros (após a sua borda)
• android:layout_marginBottom=“5dp”, android:layout_marginLeft=“1dp”
15
Layout > FrameLayout
<FrameLayout
android:id="@+id/frame_layout_exemplo"
android:layout_width="match_parent"
android:layout_height="match_parent ">
<TextView></TextView>
</FrameLayout>
16
Layout > LinearLayout
Alinha cada um dos filhos na horizontal ou na vertical e aparecem conforme a ordem presente no XML
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:orientation="vertical">
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint="to"/>
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint="subject"/>
</LinearLayout>
17
Layout > LinearLayout
<LinearLayout
android:layout_width="match_parent"
18
Layout > RelativeLayout
A posição de um componente gráfico é definida relativamente a outro e não importa a ordem no XML
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/label2"
android:layout_below=“@id/label1“
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint="subject"/>
<EditText
android:id="@+id/label1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint="to"/>
</RelativeLayout>
19
Layout > RelativeLayout
android:layout_alignParentTop
• Se "true", coloca o topo da View no mesmo ponto da View pai
android:layout_centerVertical
• Se "true", centra a View verticalmente com a View pai
android:layout_below
• Posiciona a View abaixo da View pretendida (utilizando o seu ID)
android:layout_above
• Posiciona a View acima da View pretendida (utilizando o seu ID)
android:layout_toRightOf
• Coloca a View ao lado direito da View pretendida (utilizando o seu ID)
20
Layout > TableLayout
android:layout_span </TableRow>
</TableLayout>
• Permite juntar o número de colunas pretendido
21
Questão 1
4. Todas as anteriores
22
View > Button e ImageButton
<Button
android:id="@+id/button_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_text "
android:drawableLeft="@drawable/button_icon"
android:background="@drawable/button_custom" ... />
<ImageButton
android:id="@+id/imgButton_test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/button_icon"... />
23
View > Button e ImageButton
<Button
android:id="@+id/button_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_text "
android:drawableLeft="@drawable/button_icon"
android:background="@drawable/button_custom" ... />
<ImageButton
android:id="@+id/imgButton_test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/button_icon"... />
24
View > Button e ImageButton
25
View > EditText
<EditText android:id="@+id/email_address"
android:layout_width=“match_parent"
android:layout_height="wrap_content"
android:hint="@string/email_hint"
android:inputType="textEmailAddress|textCapWords"/>
26
View > EditText
Interfaces disponíveis
• OnEditorActionListener
27
View > TextView
<TextView
android:id="@+id/texto"
android:layout_width=“match_parent"
android:layout_height="wrap_content"
android:maxLines="3"
android:text=“@string/texto"
android:textColor="#000000"
android:textSize="11sp"/>
<ImageView
android:id="@+id/imgViewTest"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/imagem"/>
29
View > CheckBox
<CheckBox
android:id="@+id/checkboxBrowser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/browser"/>
30
View > RadioGroup
<RadioGroup
android:id=“@+id/rGroup"
android:layout_width=“match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioButton
android:id="@+id/rButtonYes"
Interfaces em Java – (implements) OnCheckedChangeListener
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/yes"/> Exemplo código – onCreate()
<RadioButton mRadioGroup = (RadioGroup) findViewById(R.id.rGroup);
android:id="@+id/rButtonMaybe" mRadioGroup.setOnCheckedChangeListener(this);
android:layout_width="wrap_content"
android:layout_height="wrap_content" Exemplo código – onCheckedChanged(RadioGroup rGroup, int id)
android:text="@string/maybe"/>
</RadioGroup> 32
View > ToggleButton
<ToggleButton
android:id="@+id/togglebutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOn="Vibrate on"
android:textOff="Vibrate off"/>
33
Options Menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuItem mnu1 = menu.add(0, 0, 0, R.string.savemenu);
mnu1.setIcon(R.drawable.ic_menu_save);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onMenuItemSelected(int featureId,
MenuItem item) {
if (item.getItemId() == 0) { … }
}
34
Context Menu
35
Toast
Duração
• Toast.LENGTH_SHORT ou Toast.LENGTH_LONG
36
Unidades de medida
Existem várias unidades de tamanho que podem ser utilizadas para a definição do
tamanho/posição/espaçamento dos componente gráficos
• Pixels (px), Polegadas (in) e Milímetros (mm): corresponde aos pixéis no ecrã (não utilizar)
37
Unidades de medida
38
Unidades de medida
layout
• portrait (por predefinição)
layout-land
• landscape
layout-large
• A partir de 160dp (portrait)
layout-large-land
• A partir de 160dp (landscape)
layout-sw600dp
• Ecrã com comprimento mínimo de 600dp
40
Questão 2
<LinearLayout
android:layout_width="match_parent" android:layout_height="100dp"
android:orientation="horizontal">
<ImageView
android:layout_width="0dp" android:layout_height="match_parent"
android:layout_weight="1" a)
android:src="@drawable/nodata_icon">
</ImageView>
<LinearLayout
android:layout_width="0dp" android:layout_height="match_parent"
android:layout_weight="1"
b)
android:orientation="vertical">
<TextView android:layout_width="match_parent" android:layout_height="50dp“/>
<TextView android:layout_width="match_parent" android:layout_height="50dp“/>
</LinearLayout>
</LinearLayout>
42
Questão 3
42
Questão 4
<LinearLayout android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/texto"
a)
android:layout_margin="10dp"/>
<EditText android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:layout_margin="10dp"/>
<Button android:layout_width="match_parent"
b)
android:layout_height="wrap_content"
android:text="@string/ok"/>
</LinearLayout>
43