Criando componentes |
Top Previous Next |
Este exemplo mostra como criar 2 componentes. Um baseado no TextView e outro no View sobre-escrevendo o onDraw Tela Java
import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast;
public class VisualActivity extends Activity implements OnClickListener {
@Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); Button botao = (Button) findViewById(R.id.botao); botao.setOnClickListener(this); }
public void onClick(View arg0) { TextoNumerico text = (TextoNumerico) findViewById(R.id.numero); int numero = text.getNumero(); Toast.makeText(this, "numero: " + numero, Toast.LENGTH_SHORT).show(); } }
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:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Digite o número" />
<com.visual.TextoNumerico android:id="@+id/numero" android:layout_width="fill_parent" android:layout_height="wrap_content" android:numeric="integer" />
<Button android:id="@+id/botao" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="OK" />
<com.visual.Quadrado android:id="@+id/quadrado" android:layout_width="fill_parent" android:layout_height="wrap_content" />
</LinearLayout>
fonte do TextoNumerico.java
package com.visual;
import android.content.Context; import android.util.AttributeSet; import android.widget.EditText;
public class TextoNumerico extends EditText {
// construtor usado pelo "new" public TextoNumerico(Context context) { super(context); }
// construtor usado pelo "xml" public TextoNumerico(Context context, AttributeSet attrs) { super(context, attrs); }
// função criada por mim public int getNumero() { String s = getText().toString(); try { int i = Integer.parseInt(s); return i; } catch (Exception e) { } return 0; } }
Fonte do Quadrado.java
package com.visual;
import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.view.View;
public class Quadrado extends View { // para definir a cor RGB private Paint pincelVermelho; private Paint pincelPreto; private Paint pincelAzul;
public Quadrado(Context context) { this(context, null); }
public Quadrado(Context context, AttributeSet attrs) { super(context, attrs); setBackgroundColor(Color.LTGRAY);
// Vermelho pincelVermelho = new Paint(); pincelVermelho.setARGB(255, 255, 0, 0);
// Preto pincelPreto = new Paint(); pincelPreto.setARGB(255, 0, 0, 0);
// Azul pincelAzul = new Paint(); pincelAzul.setARGB(255, 0, 0, 255);
// Configura a View para receber foco e tratar eventos de teclado setFocusable(true); }
@Override public void onDraw(Canvas canvas) { super.onDraw(canvas);
int y = 10;
// Desenha um quadrado canvas.drawRect(10, y, 10 + 50, y + 50, pincelAzul);
// desenha uma linha canvas.drawLine(50, 50, 100, 100, pincelPreto);
// desenha um circulo canvas.drawCircle(100, 100, 20, pincelVermelho); } } |