SQLite
 sql >> Base de données >  >> RDS >> SQLite

Android :Comment charger dynamiquement une image à partir du serveur par son nom à partir de SQlite

Si vous souhaitez charger des images à partir de SQlite, je vous suggère d'enregistrer l'emplacement du fichier/fichier si les données sont stockées localement, pour l'affichage d'une seule image sur toutes les vues d'image, c'est parce que vous ne chargez qu'une seule image, vous voudrez peut-être pour mettre tous vos identifiants dans un tableau et le transmettre à la base de données, la requête db doit également renvoyer un tableau/tableau d'emplacements d'images que vous devez charger dans vos vues d'image à l'aide d'une for loop par exemple, j'ai une requête qui charge un tas d'images de ma base de données SQLite, cela affiche des images de sous-catégorie d'une certaine catégorie nommée chaussures, nous avons donc des images de smart shoes , Casual shoes en plus je passe un Id en paramètre

  public ArrayList<CategoryItem> getAllSubCategories(int mtargetID) throws SQLException{



    ArrayList<CategoryItem> myshoes = new ArrayList<>();
    // Select All Query



    String sQuery = " SELECT "+Constant.CATEGORY_TB_ID+",  "+Constant.SUB_DESCRIPTION+
            ", "+Constant.SUB_IMAGEPATH+" FROM  "+Constant.CATEGORY_TABLE+
    " INNER JOIN "+Constant.SUB_CATEGORY_TABLE+" ON "+Constant.CATEGORY_TB_ID +" = " +Constant.SUB_CATEGORY_FK
   + " WHERE "+Constant.CATEGORY_TB_ID +" = ?";

    String[] args = new String[1];
    args[0] = String.valueOf(mtargetID);


    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(sQuery, args);

    // looping through all rows and adding to list
    if (cursor.moveToFirst()) {
        do {
            CategoryItem myShoesItem = new CategoryItem();

            //my shoe image path on external storage
            myShoeItem.setmCategoryImgPath(cursor.getString(2));
            //i add my image paths to my array list
            myshoes.add(myShoeItem);
        } while (cursor.moveToNext());
    }

    // return my arraylist for display into my imageview
    return mshoes;

}

du côté de la réception, je traverse ensuite mon araylist

   for(int i = 0; i <getAllSubCategories.size(); i++ )
  {

       imageView.setImageUri(getAllSubCategories.get(i).getmCategoryImgPath())
   }

avec cette méthode, vous définirez des images pour toutes vos vues d'images.