segunda-feira, 1 de junho de 2015

Javascript:Métodos a objetos em notação literal

Fala galera, rapidinha de hoje, vou mostrar para vocês como criar métodos a objetos em notação literal, vamos lá:

var james = {
    job: "programador",
    married: false,
    speak: function(data) {
        console.log(data);
    }
};

james.speak("ótimo");


vejá que adicionamos o método speak na declaração do objeto James, viu como é simples? 
até mais pessoal.

quarta-feira, 25 de fevereiro de 2015

Classes Aninhadas e anônimas

Fala galera, blz?

Hoje vou mostrar para vocês um exemplo de classe aninhada e um exemplo de classe anônima.

Uma classe aninhada é uma classe dentro de outra classe Java, já uma classe anônima é uma instancia direta sem referencia do Objeto, exemplo :

new Thread(new Runnable()){ 
@Override
public void run(){
/**

*
* temos uma Thread e uma Runnable anonima aqui, pois nossa classe Thread recebe uma *Runnable. 
}


}

Já uma classe aninhada é muito simples


Exemplo:

class Animal {

 class Humano{

 
  public void andar(){

 System.out.println("Andando..");

}


 }
//Agora como instanciar a classe aninhada
public static void main(String [] args){
  //vamos precisar de uma instancia da classe "pai"
Animal animal = new Animal();

Animal.Humano humano = animal.new Humano();

humano.andar();

}

}


Viu como é simples? Descomplique. Até mais galera.

terça-feira, 27 de janeiro de 2015

Criando uma aplicação de pintura no Android (Paint)


Fala galera, tudo em cima? Hoje vou ensinar para vocês como construir um aplicativo semelhante ao Paint , bem simples, mas que pode ser implementado de forma eficiente em muitos projetos.

É muito simples, porém exige um conhecimento intermediario de Java/Android para ser aplicada.



Classe MainActivity :

package com.br.javeando;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Nesse ponto devemos trocar o conteudo para nossa Classe do desenho e não para o XML
setContentView(new desenhoView(this));
}



}


Classe desenhoView

package com.br.javeando;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.Path;
import android.view.MotionEvent;
import android.view.View;

public class desenhoView extends View {
private Paint paint = this.paintInit();
private Path path;
public desenhoView(Context context) {
super(context);
path = new Path();
}

@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawPath(path, paint);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN){
path.moveTo(event.getX(),event.getY());
}else{
path.lineTo(event.getX(),event.getY());
}
invalidate();
return true;
}
private Paint paintInit(){
paint = new Paint();
paint.setStrokeWidth(2F);
paint.setColor(Color.BLACK);
this.setBackgroundColor(Color.WHITE);
paint.setStyle(Style.STROKE);
return paint;
}
}


Como funciona ?

A classe principal : MainActivity é responsavel apenas por "hospedar" a nossa view.

Já a classe desenhoView  que herda de View e assim é obrigada a construir a classe pai ,  recebe toda a ação. Vamos começar pelos objetos utilizados

Objeto Paint recebe as propriedades da nossa pintura como tamanho do pincel, cor, formato e etc..

no método paintIniti estamos inicializando nossa instancia passando as configurações necessárias.

O nosso objeto Path é um encapsulamento de um caminho geometrico, pode ser uma reta, um arco , etc..

Agora iremos fazer Override no método onDraw da nossa classe View , receberemos um objeto canvas onde iremos setar nossos objetos path(caminho) e paint(cores,formato,etc)

agora iremos fazer o Override em mais um método, o método: onTouchEvent que recebe os toques na tela do projeto, recebemos um evento e vamos verificar quando o usuario esta pressionando e ao final o metodo invalidate() re-desenha a tela.

Viu como é simples? qualquer duvida, deixe nos comentarios. Valeeeeeeu