3 hello world android

Vamos a mais um artigo sobre desenvolvimento android. Dessa vez vou apresentar alguns meios de construir uma app simples. Um hello world com um botão.
Vou apresentar três abordagens diferentes de fazer um app com um botão. Quando o usuário clica sobre o botão aparece a mensagem ‘oi mundo’.

Screenshot_2015-10-22-18-24-09
A maneira mais sofisticada (ente as maneiras que vou apresentar) é com webview/html. Pra isso criamos um novo app, alteramos o arquivo ‘main.xml’ para que ele contenha o ‘webview’ e com o java atribuimos o html (string) ao webview.
O html/string contém o button. Essa maneira é a mais sofisticada.

o código do arquivo ‘main.xml’ da versão 1 fica:

<?xml version="1.0" encoding="utf-8"?>
<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>

e o código do arquivo ‘MainActivity.java’ da versão 1 fica:

package oi.mundo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebSettings;
import android.webkit.WebChromeClient;

public class MainActivity extends Activity
{ @Override public void onCreate(Bundle savedInstanceState)
{ super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.setWebChromeClient(new WebChromeClient());
myWebView.loadData("<html><body><input type=button value=Aperte onclick=\"alert('Oi Mundo');\"></body></html>","text/html","UTF-8");
}
}

Screenshot_2015-10-22-18-37-43

A maneira mais tradicional é através de java/xml. Criamos um novo app e colocamos um button no xml e escrevemos um codigo java. Simples funcional e robusto.

o código do arquivo ‘main.xml’ da versão 2 fica:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:id="@+id/sv1">
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:gravity="center">
<Button android:textSize="20dp" android:id="@+id/btn1" android:layout_width="250dp" android:layout_height="64dp" android:text="Aperte" android:onClick="onClick1"></Button>
</LinearLayout>
</ScrollView>

e o código do arquivo ‘MainActivity.java’ da versão 2 fica:

package oi.mundo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity
{
@Override public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void onClick1(View view)
{
Toast.makeText(this,"Oi Mundo",300).show();
}
}

 

Screenshot_2015-10-22-18-57-34
A terceira maneira que apresento é através da classe ‘View’.
Podemos extender a classe view e desenhar nosso botão na tela atraves do método ‘onDraw’.
E interceptar o toque na tela atraves do método ‘onTouchEvent’.
Pode ser mais complexo, mas é mais leve e rápido. É mais baixo-nível…

Dessa maneira não precisamos usar o arquivo ‘main.xml’.
Podemos até excluí-lo.
e o código do arquivo ‘MainActivity.java’ da versão 3 fica:

package oi.mundo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Color;
import android.view.MotionEvent;

public class MainActivity extends Activity
{
ViewHello vd;
boolean mostratexto=false;
@Override public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
vd=new ViewHello(this);
setContentView(vd);
}
class ViewHello extends View
{
public ViewHello(Context c){super(c);}
@Override public boolean onTouchEvent(MotionEvent me)
{
float x=me.getX(),y=me.getY();
if(x<100&&y<100)mostratexto=true;
if(me.getAction()==MotionEvent.ACTION_UP)mostratexto=false;
vd.invalidate();
return true;
}
@Override protected void onDraw(Canvas c)
{
super.onDraw(c);
Paint p=new Paint();
p.setColor(new Color().rgb(0,0,0));
c.drawPaint(p);
p.setColor(Color.BLUE);
c.drawRect(0,0,100,100,p);
p.setColor(Color.WHITE);
c.drawText("Aperte",26,40,p);
if(mostratexto)
{
c.drawText("Oi mundo",200,100,p);
}
}
}
}

 

Screenshot_2015-10-22-19-04-56

Podemos, por exemplo, usar uma imagem para o botão… Mudar o estilo do botão enquanto ele estiver pressionado…
Dessa maneira temos maior controle sobre a tela e o aparelho…, podemos desenhar nela, interceptar o toque…
Extender a classe ‘View’ é uma ‘mão na roda’ !

Recomendo muito que voce conheça essa classe e suas características…
Se ficou alguma dúvida, pode me perguntar pelo meu email [email protected]

3 hello world android
5 (100%) 1 vote