Opa, estou seguindo o Tutorial do Android II: Aula 2 e ele esta usando a câmera do emulador do celular pra bater foto. Alguma coisa esta ocorrendo quando eu dou o OK na foto tirada.
o que devo fazer?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Isso ai agora está acontecendo na hora que eu clico pra usar a câmera também. Sera que é falha no codigo ? Vou colar meu codigo aqui ;
package br.com.alura.agenda;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import java.io.File;
import br.com.alura.agenda.dao.AlunoDAO;
import br.com.alura.agenda.modelo.Aluno;
public class FormularioActivity extends AppCompatActivity {
private FormularioHelper helper;
public static final int CODIGO_CAMERA = 567;
private String caminhoFoto;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_formulario);
helper = new FormularioHelper(this);
Intent intent = getIntent();
Aluno aluno = (Aluno) intent.getSerializableExtra("aluno");
if(aluno != null){
helper.preencheFormulario(aluno);
}
Button botaoFoto = (Button)findViewById(R.id.formulario_botao_foto);
botaoFoto.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Intent intentCamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
caminhoFoto = getExternalFilesDir(null) + "/" + System.currentTimeMillis() + ".jpg";
File arquivoFoto = new File(caminhoFoto);
intentCamera.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(arquivoFoto));
startActivityForResult(intentCamera, CODIGO_CAMERA);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//Abrir a Foto que foi Tirada
if(resultCode == Activity.RESULT_OK) {
if (requestCode == CODIGO_CAMERA) {
ImageView foto = (ImageView) findViewById(R.id.formulario_foto);
Bitmap bitmap = BitmapFactory.decodeFile(caminhoFoto);
Bitmap bitmapReduzido = Bitmap.createScaledBitmap(bitmap, 300, 300, true);
foto.setImageBitmap(bitmap);
foto.setScaleType(ImageView.ScaleType.FIT_XY);
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_formulario, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.menu_formulario_ok:
Aluno aluno = helper.getAluno();
AlunoDAO dao = new AlunoDAO(this);
if(aluno.getId() != null){
dao.altera(aluno);
}else{
dao.insere(aluno);
}
dao.close();
Toast.makeText(FormularioActivity.this, "Aluno " + aluno.getNome() + " salvo!", Toast.LENGTH_SHORT).show();
finish();
break;
}
return super.onOptionsItemSelected(item);
}
}
Fala ai Luis, de boa ?
Qual é a versão do android que está no emulador ?
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
buildToolsVersion '27.0.2'
defaultConfig {
applicationId "br.com.alura.agenda"
minSdkVersion 15
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:27.0.2'
testCompile 'junit:junit:4.12'
}
Luis,
Queria saber a versão do android que está rodando no emulador, se o 6.0, 7.0, 8.1 ...
Você está rolando o no Android 8.0
O código que está no video funciona até o 6.0, que era a versão atual quando gravaram o curso.
O instrutor deixou um ponto de melhora para as versões mais recentes na solução dele, dá uma olhadinha.