Load imageView using image path

Asked

Viewed 3,748 times

3

I have a listView loaded with BD data on a screen, on another screen my app hits a photo and saves the path of the photo in BD, until then I could do normal, now how to put the image in the Imageview of ListView using the way saved in the comic book I don’t know how to do.

Activity of the List:

public class MainActivity extends AppCompatActivity {
private ListView lvPrincipal;
private LivroAdapter livroAdapter;
private List<Livro> lista;

private void getLivros() throws Exception {
    LivroCRUD livroCRUD = new LivroCRUD(this);
    //armazena os dados da busca em uma lista temporaria
    List<Livro> tempLista = livroCRUD.buscarTodos();

    // Cria a lista, caso ela não esteja criada
    if (lista == null)
        lista = new ArrayList<Livro>();

    // Limpa a sua lista de livros e adiciona todos os registros da lista temporária
    lista.clear();
    lista.addAll(tempLista);

    // Se o adapter for null, cria o adapter, se não notifica que seu dataset teve alteração
    if (livroAdapter == null) {
        livroAdapter = new LivroAdapter(this, lista);
        lvPrincipal.setAdapter(livroAdapter);
    } else {
        livroAdapter.notifyDataSetChanged();
    }
}

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

    lvPrincipal = (ListView) findViewById(R.id.lvPrincial);
    try {
        this.getLivros();
    } catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(this, "Não foi possivel carregar a lista.", Toast.LENGTH_SHORT).show();
    }
}

@Override
protected void onResume() {
    super.onResume();
    try {
        this.getLivros();
    } catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(this, "Não foi possivel carregar a lista.", Toast.LENGTH_SHORT).show();
    }

}

public void chamaCadastro(View view) {
    Intent intent = new Intent(this, AddUpdateActivity.class);
    startActivity(intent);
}

public void chamaConsulta(View view) {
    Intent intent = new Intent(this, ConsultaActivity.class);
    startActivity(intent);
}

Registration activity:

public class AddUpdateActivity extends AppCompatActivity {

private Livro livro = new Livro();
private EditText edtTitulo;
private EditText edtAutor;
private EditText edtEditora;
private File file;

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

    edtTitulo = (EditText) findViewById(R.id.edtTitulo);
    edtAutor = (EditText) findViewById(R.id.edtAutor);
    edtEditora = (EditText) findViewById(R.id.edtEditora);

    Button btnAdicionar = (Button) findViewById(R.id.btnAdicionar);
    }
}

//METODO CHAMADO PELO ONCLICK PARA ADICIONAR
public void adicionar(View view) {
    livro.setTitulo(edtTitulo.getText().toString());
    livro.setAutor(edtAutor.getText().toString());
    livro.setEditora(edtEditora.getText().toString());
    livro.setCaminhoImg(file.getPath().toString());

    LivroCRUD livroCRUD = new LivroCRUD(this);
    try {
        livroCRUD.inserir(livro);
        Toast.makeText(this, "Livro Salvo com sucesso!!!!", Toast.LENGTH_LONG).show();
        finish();
    } catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(this, "Não foi possivel salvar.....!!!!", Toast.LENGTH_LONG).show();
    }
}
//METODO CHAMADO PELO ONCLICK DO IMAGEVIEW PARA BATER FOTO
public void tirarFoto(View view) {
    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");

    //espera o resultado
    startActivityForResult(intent, 0);
}

//espera a resposta da atividade no nosso caso espera a foto do intent
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (data != null) {
        Bundle bundle = data.getExtras();
        if (bundle != null) {
            Bitmap img = (Bitmap) bundle.get("data");

            ImageView iv = (ImageView) findViewById(R.id.imagemCadastro);
            iv.setImageBitmap(img);

            //chgama o metodo e pega o URI da imagem
            Uri uri = getImageUri(getApplicationContext(), img);

            //chama o metodo e pega o URI da imagem
            file = new File(geRealPath(uri));

            Toast.makeText(this, "CAMINHO: " + file.getPath(), Toast.LENGTH_LONG).show();
        }
    }
}

private String geRealPath(Uri uri) {
    Cursor cursor = getContentResolver().query(uri, null,null,null,null);
    cursor.moveToFirst();
    int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
    return cursor.getString(idx);
}

private Uri getImageUri(Context context, Bitmap img) {
    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    img.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
    String path = MediaStore.Images.Media.insertImage(context.getContentResolver(), img, "Title", null);
    return Uri.parse(path);
}

Adapter:

public class LivroAdapter extends BaseAdapter {
private Context context;
private List<Livro> lista;

public LivroAdapter(Context context, List<Livro> lista) {
    this.context = context;
    this.lista = lista;
}

@Override
public int getCount() {
    return lista.size();
}

@Override
public Object getItem(int arg0) {
    return lista.get(arg0);
}

@Override
public long getItemId(int arg0) {
    return lista.get(arg0).getId();
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    Livro livro = lista.get(position);
    final int auxPosition = position;

    LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
    final View layout = inflater.inflate(R.layout.item_lista, null);

    TextView titulo = (TextView) layout.findViewById(R.id.tvTitulo);
    titulo.setText(lista.get(position).getTitulo());

    TextView autor = (TextView) layout.findViewById(R.id.tvAutor);
    autor.setText(lista.get(position).getAutor());

    TextView editora = (TextView) layout.findViewById(R.id.tvEditora);
    editora.setText(lista.get(position).getEditora());

    //BOTÃO ATUALIZAR
    Button btnAtualizar = (Button) layout.findViewById(R.id.btnChamaAtualizar);
    btnAtualizar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(context, AddUpdateActivity.class);
            intent.putExtra("titulo", lista.get(auxPosition).getTitulo());
            intent.putExtra("autor", lista.get(auxPosition).getAutor());
            intent.putExtra("editora", lista.get(auxPosition).getEditora());
            intent.putExtra("_id", lista.get(auxPosition).getId());
            context.startActivity(intent);

        }
    });

    //BOTAO DELETAR
    Button btnDeletar = (Button) layout.findViewById(R.id.btnDeletar);
    btnDeletar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            LivroCRUD livroCRUD = new LivroCRUD(context);
            try {
                livroCRUD.deletar(lista.get(auxPosition));
                layout.setVisibility(View.GONE);
            } catch (Exception e) {
                e.printStackTrace();
                Toast.makeText(context, "Não foi possivel excluir!!!!!", Toast.LENGTH_SHORT).show();
            }
        }
    });

    return layout;
}

1 answer

4


File imgFile = new  File("SEU FILE PATH");

if(imgFile.exists()){

    Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

    ImageView myImage = (ImageView) findViewById(R.id.imageviewTest);

    myImage.setImageBitmap(myBitmap);

}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.