Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Como Inserir uma Imagem a Partir de uma Pasta, e não da Câmera ?

Boa Tarde, eu gostaria de adicionar uma foto a partir de uma pasta (drive c: ou da pasta drawable), e não a partir da camera. Como Faço?

// **************************************************************Classe da Tela.java
public class Tela2_Form1 extends AppCompatActivity { 
    private Tela2_Form2 Variavelzz;                                         
    ContatosDAO VariavelTT = new ContatosDAO(this);           
    private String caminhoFoto;                                             

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.formulario);

         Variavelzz = new Tela2_Form2(this);                               

        Intent intentXYZ = getIntent();                                     
        final ContatosMODEL contatoX80 = (ContatosMODEL) intentXYZ.getSerializableExtra("contato12345"); 

        if (contatoX80 != null) {
            Variavelzz.CarregarRegistro(contatoX80);
        }

        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, 150);
            }
        });

        Button botaoSalvar = (Button) findViewById(R.id.Botao_Salvar_Formulario2);       
        botaoSalvar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ContatosMODEL contatoX31 = Variavelzz.PegarValoresEntrados();

                if(contatoX31.getId()!= null) {
                    VariavelTT.altera(contatoX31);}
                else {
                    VariavelTT.insere(contatoX31);
                }
                VariavelTT.close();

                Toast.makeText(Tela2_Form1.this, "Contato " + contatoX31.getNome() + " Salvo", Toast.LENGTH_SHORT).show();
                finish();
            }
        });

        Button BotaoDeletar = (Button) findViewById(R.id.Botao_Deletar_Form);       
        BotaoDeletar.setOnClickListener(new View.OnClickListener() {                
            @Override
            public void onClick(View v) {
                ContatosDAO dao = new ContatosDAO(getBaseContext());
                dao.deleta(contatoX80);
                dao.close();
                finish();
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == Activity.RESULT_OK) {
            if (requestCode == 150){
                ImageView foto = (ImageView) findViewById(R.id.formulario_foto);
                Bitmap bitmap = BitmapFactory.decodeFile(caminhoFoto);
                Bitmap bitmapReduzido = Bitmap.createScaledBitmap(bitmap, 300, 300, true);
                foto.setImageBitmap(bitmapReduzido);
                foto.setScaleType(ImageView.ScaleType.FIT_XY);
                foto.setTag(caminhoFoto);
            }
        }
    }
}
5 respostas

Olá Marcelo, tudo bem?

Acredito que você conseguiria resolver esse problema da seguinte forma:

 ImageView foto = (ImageView) findViewById(R.id.formulario_foto);
foto.setImageResource(R.drawable.xxxxxxxx);

Abs

Rafael, muito obrigado pela ajuda, mas não deu certo não (apareceu "vermelho" o código). Me perdoa, mas sou novo nisso, precisaria meio que detalhado. rs

É só utilizar seu código no lugar do Intent Camera?

  Button botaoFoto = (Button) findViewById(R.id.formulario_botao_foto);
        botaoFoto.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v) {
                ImageView foto = (ImageView) findViewById(R.id.formulario_foto);
                foto.setImageResource(R.drawable);

                /*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, 150);*/
            }
        });

Olá Marcelo,

Nesse caso, a imagem precisaria estar na pasta drawable do seu projeto, a chamada do método seria algo como:

foto.setImageResource(R.drawable.[minha image na pasta drawable]);

Abs

Ola Rafael, Obrigado pela preocupação, mas sou iniciante em Android e preciso mais detalhado (praticamente o código feito).

Quando o botão de tirar foto for clicado, eu gostaria que abrisse uma janela ou então aparecesse a janela da pasta drawable, e aí eu escolheria qual imagem a ser carregada, ou seja, ao invés de ter comando

Intent intentCamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); .......

quais comandos eu devo colocar?

solução!

Olá Marcelo,

Infelizmente não teria o código inteiro também, mas estive pesquisando alguns exemplos no Github e acredito que esse projeto poderá ajudar. Já utilizei uma vez:

https://github.com/jrvansuita/PickImage

Lá teria os passos e os códigos necessários, esse projeto mostra a opção do usuário escolher entre usar uma imagem da câmera ou uma imagem já salva.

Abs