Android - Como podría mostrar las imágenes almacenadas en el servidor de la base de datos ?

 
Vista:
Imágen de perfil de Roberto
Val: 43
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

Como podría mostrar las imágenes almacenadas en el servidor de la base de datos ?

Publicado por Roberto (16 intervenciones) el 01/05/2021 16:22:23
Hola a tod@s

Llevo desde el inicio de mi proyecto intentando mostrar las imágenes de los socios almacenadas en una carpeta del servidor de mi base de datos, y no lo he logrado hasta ahora

Llevo videos, manuales, búsquedas y webs infinitas, en todas veo cosas parecidas, pero en la gran mayoría esas imágenes las toman de la misma web.

Yo lo que deseo es cogerlas desde una carpeta PHOTO compartida

Al servidor llego a través de una ip dinámica que vamos a suponer sea "mi_ip_dinamica.net"
Utilizo URL = "\\mi_ip_dinamica.net\Equipo-BaseDatos\PHOTO"
Si voy a red veo mi equipo y mi carpeta compartida, en ubicación pone: \\Equipo-BaseDatos, recurso \PHOTO

He intentando varias formas:
desde una clase dedicada:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
class LoadImage extends AsyncTask<String, Void, Bitmap> {
 
    private final WeakReference<ImageView> imageViewReference;
 
    public LoadImage(ImageView imageView) {
        imageViewReference = new WeakReference<ImageView>(imageView);
    }
 
    @Override
    protected Bitmap doInBackground(String... params) {
        try {
            return downloadBitmap(params[0]);
        } catch (Exception e) {
            Log.e("LoadImage class", "doInBackground() " + e.getMessage());
        }
        return null;
    }
 
    @Override
    protected void onPostExecute(Bitmap bitmap) {
        if (isCancelled()) {
            bitmap = null;
        }
 
        if (imageViewReference != null) {
            ImageView imageView = imageViewReference.get();
            if (imageView != null) {
                if (bitmap != null) {
                    imageView.setImageBitmap(bitmap);
                }
            }
        }
    }
 
    private Bitmap downloadBitmap(String url) {
        HttpURLConnection urlConnection = null;
        try {
            URL uri = new URL(url);
            urlConnection = (HttpURLConnection) uri.openConnection();
            int statusCode = urlConnection.getResponseCode();
            if (statusCode != HttpURLConnection.HTTP_OK) {
                return null;
            }
 
            InputStream inputStream = urlConnection.getInputStream();
            if (inputStream != null) {
                Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
                return bitmap;
            }
        } catch (Exception e) {
            urlConnection.disconnect();
            Log.e("LoadImage class", "Descargando imagen desde url: " + url);
        } finally {
            if (urlConnection != null) {
                urlConnection.disconnect();
            }
        }
        return null;
    }
}

Donde al llamar a la clase de envío la URL indicada al principio

También he usado la librería Picasso:
1
2
3
4
5
6
7
8
9
10
11
String extImg = ".jpg";
private String imageURL = "\\mi_ip_dinamica.net\Equipo-BaseDatos\PHOTO";
 
String nImagen = metodoObtenerNumeroImagen();
        String rutaImg = imageURL + nImagen + extImg;
        Picasso.with(this)
                .load(rutaImg)
                .error(R.drawable.avestruz)
                .fit()
                .centerInside()
                .into(Cimagen);

En el métodoObtenerNumeroImagen, lo que hago, es preguntar a la base de datos por el número de usuario, la imagen de cada usuario se almacena nombrada por ese número.jpg

Alguien podría darme alguna idea ?
Que estoy haciendo mal, que me falta por hacer, como podría reorientar mi proyecto
Alguna ayudita, porfisssss ?

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder