SQLite
 sql >> Database >  >> RDS >> SQLite

Android:come caricare l'immagine dinamicamente dal server in base al suo nome da SQlite

Se vuoi caricare immagini da SQlite allora ti suggerisco di salvare il file/la posizione del file se i dati sono archiviati localmente, per la visualizzazione di una singola immagine su tutte le visualizzazioni è perché stai caricando solo una singola immagine, potresti voler per mettere tutti i tuoi ID in un array e passarlo al db, la query db dovrebbe anche restituire un array/arraylist di posizioni di immagine che dovresti caricare nelle viste delle tue immagini usando un for loop ad esempio, ho una query che carica un mucchio di immagini dal mio database SQLite, questo mostra le immagini della sottocategoria di una determinata categoria denominata scarpe, quindi abbiamo immagini di smart shoes , Casual shoes e più passo un Id come parametro

  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;

}

sul lato ricevente, quindi, passo attraverso la mia araylist

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

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

con questo metodo imposterai le immagini su tutte le tue visualizzazioni di immagini.