Material para estudar

Olá.
Eu sou novo em programação android, e gostaria que
alguem pudesse me indicar algum material de estudo de android, desde o basico ao avançado…
Ja vi alguns tutoriais, mas eram coisas simples que só te ensinavam a fazer uma calculadora.
Tenho experiencia com Java.

Tem a apostila de desenvolvimento mobile com android da K19

http://www.k19.com.br/downloads/apostilas/java/k19-k41-desenvolvimento-mobile-com-android

Tem essa video aulas.

http://www.informaticon.com.br/lojavirtual1/index.php?page=shop.browse&category_id=19&option=com_virtuemart&Itemid=71&vmcchk=1&Itemid=71

São 3 cursos, primeiro, acredito que vc já deve saber.

Mas os outros, é um pouco mais avançados, explica como usar banco, mapas eGPS.

Se eu não me engano essas aulas estão disponíveis no youtube.
Agora se vc quiser o código fonte os arquivos e os softwares, terá que comprar os DVD’s.

Abraços.

Fica com DEUS.

Tenho esses artigos que já estão ficando desatualizados que podem ajudar também.

Olá
Se entende bem o inglês, o site Android Developers tem bastante material.
Mas, eu sempre indico usar um bom livro como guia.
Não recomendo usar video-aulas, tutoriais, apostilas e coisas do tipo na fase inicial do aprendizado. Tem muita coisa boa , mas muito coisa, vamos dizer, nem tanto.
Usa um livro como base e depois usa esses materiais como apoio, exemplo, etc.

Bons estudos!

[quote=A H Gusukuma]Olá
Se entende bem o inglês, o site Android Developers tem bastante material.
Mas, eu sempre indico usar um bom livro como guia.
Não recomendo usar video-aulas, tutoriais, apostilas e coisas do tipo na fase inicial do aprendizado. Tem muita coisa boa , mas muito coisa, vamos dizer, nem tanto.
Usa um livro como base e depois usa esses materiais como apoio, exemplo, etc.

Bons estudos![/quote]
Eu concordo! Estudando por livros se tem um resultado talvez um pouco mais lento, porém, muito mais eficaz na minha opinião.

Eu indico esse: http://www.casadocodigo.com.br/products/livro-android

Obrigado a todos.
Eu vou ler os livros e as apostilas que vocês
me indicaram.
Mas só mais uma coisa, alguém poderia me
indicar alguma apostila, livro, ou tutorial sobre a parte de Canvas? Porque depois que eu estudar o básico, a parte de Canvas e desenhos de imagens é o que eu pretendo estudar.
Desde já, obrigado.

Sobre o Canvas (que é bem parecido com o Graphics2D) voce pode ver algo nesse tutorial de um jogo de Pong para Android.

Valeu cara.
Mas eu tentei bastante desenhar com esse tutorial, mas ainda não consegui.
Eu consigo desenhar um RGB, fazendo com que a tela fique com um background colorido.
Mas quando eu tentei desenhar a bolinha, deu um erro.

a stacktrace no LogCat:

05-06 18:05:13.946: E/AndroidRuntime(758): FATAL EXCEPTION: main 05-06 18:05:13.946: E/AndroidRuntime(758): java.lang.NullPointerException 05-06 18:05:13.946: E/AndroidRuntime(758): at com.example.view.Tela.onDraw(Tela.java:36) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.View.draw(View.java:13712) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.View.draw(View.java:13596) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.ViewGroup.drawChild(ViewGroup.java:2928) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2797) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.View.draw(View.java:13715) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.widget.FrameLayout.draw(FrameLayout.java:467) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.View.draw(View.java:13596) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.ViewGroup.drawChild(ViewGroup.java:2928) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2797) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.View.draw(View.java:13594) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.ViewGroup.drawChild(ViewGroup.java:2928) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2797) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.View.draw(View.java:13715) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.widget.FrameLayout.draw(FrameLayout.java:467) 05-06 18:05:13.946: E/AndroidRuntime(758): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2211) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.ViewRootImpl.drawSoftware(ViewRootImpl.java:2281) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.ViewRootImpl.draw(ViewRootImpl.java:2177) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2045) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1854) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.Choreographer.doCallbacks(Choreographer.java:562) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.Choreographer.doFrame(Choreographer.java:532) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.os.Handler.handleCallback(Handler.java:725) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.os.Handler.dispatchMessage(Handler.java:92) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.os.Looper.loop(Looper.java:137) 05-06 18:05:13.946: E/AndroidRuntime(758): at android.app.ActivityThread.main(ActivityThread.java:5041) 05-06 18:05:13.946: E/AndroidRuntime(758): at java.lang.reflect.Method.invokeNative(Native Method) 05-06 18:05:13.946: E/AndroidRuntime(758): at java.lang.reflect.Method.invoke(Method.java:511) 05-06 18:05:13.946: E/AndroidRuntime(758): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 05-06 18:05:13.946: E/AndroidRuntime(758): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 05-06 18:05:13.946: E/AndroidRuntime(758): at dalvik.system.NativeStart.main(Native Method)

Eu ficaria feliz se você me ajudasse :smiley:

Voce conseguiu carregar o Bitmap da bolinha corretamente? Precisa baixa-la e deixar no assets se bem me lembro.

Ainda nem cheguei na parte de usar imagem kk.
To usando “canvas.drawCircle”.

Aqui o código da tela:

package com.example.view;

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 Tela extends View {
    Paint paint;
    Paint bpaint;
	
	public Tela(Context context) {
		super(context);
	}
	
	public Tela(Context context, AttributeSet attrs) {
		super(context, attrs);
	}
	
	public Tela(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}
	
	public void init() {
		paint = new Paint();
		paint.setColor(Color.BLACK);
		bpaint = new Paint();
		bpaint.setColor(Color.RED);
	}
	
	public void onDraw(Canvas canvas) {
		super.onDraw(canvas);
	    
		paint.setColor(Color.BLACK);
		
		canvas.save();
		canvas.drawRect(0, 0, getWidth(), getHeight(), paint);
		canvas.drawCircle(80, 80, 10, bpaint);
		canvas.restore();
	}
}

Activity:

package com.example.view;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Canvas;
import android.view.Menu;

public class MainActivity extends Activity {
	
	Tela tela;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		tela = new Tela(this);
		setContentView(tela);
	}
}

:confused:

Falta chamar init nos seus construtores para criarem o Paint.

public Tela(Context context) {  
        super(context);  
        init();
    }  
      
    public Tela(Context context, AttributeSet attrs) {  
        super(context, attrs);  
        init();
    }  
      
    public Tela(Context context, AttributeSet attrs, int defStyle) {  
        super(context, attrs, defStyle);  
        init();
    }  

Consegui :smiley:
Você poderia me explicar pra que servem esse construtores exatamente?

Os varios construtores são apenas para garantir que a View pode ser construida pelos varios mecanismos do Android.

Normalmente, via código voce utiliza apenas com o Context.
O LayoutInflater irá usar o com AttributeSet e também o com “int defStyle” se necessario.

Ah, entendi!
Desenhei a bolinha.
Mas to com um problema na segunda parte.
Baixei os fontes da classe Vector2D, mas ta faltando a classe Pointer2D.

Você sabe como eu posso resolver isso?

Pointer2D?? Não lembro nem de usar isso

Aliás, Point2D.
Eu peguei a classe Vector2D nesse artigo do ViniGodoy sobre vetores.
No código, há a importação de uma classe chamada Point2D.

Você não tem o link do código da classe Vector2D que você usou no tutorial do seu artigo?
Seria de grande ajuda :smiley:

Então, essa classe com Point2D não funciona no Android.

Essa sim: https://github.com/MarkyVasconcelos/AndroidTechsGames/blob/master/src/br/techs/math/Vector2D.java

Que aliás, faz parte do pacote com todo codigo fonte atualizado do artigo.

Valeu cara! :smiley:
Como é que você sabe tanto?
Vou ler o artigo sobre vetores do PontoV.
Qualquer dúvida eu tiro aqui, pode ser?

Opa, por nada :slight_smile:

Sei muito não, só sei empregar todo sub-set de tudo que sei para fazer as coisas. ^^

Leia os artigos do PontoV sim, isso me ajudou muito (desde antes do site), qualquer duvida pode perguntar no forum mesmo.