sql >> Base de Datos >  >> RDS >> SQLite

Android:cómo cargar una imagen dinámicamente desde el servidor por su nombre desde SQlite

Si desea cargar imágenes desde SQlite, le sugiero que guarde el archivo/ubicación del archivo si los datos se almacenan localmente, para mostrar una sola imagen en la vista de todas las imágenes es porque solo está cargando una sola imagen, es posible que desee para poner todas sus identificaciones en una matriz y pasarlas a la base de datos, la consulta de la base de datos también debe devolver una matriz/lista de matrices de ubicaciones de imágenes que debe cargar en sus vistas de imágenes usando un for loop por ejemplo, tengo una consulta que carga un montón de imágenes de mi base de datos SQLite, esto muestra imágenes de subcategoría de una determinada categoría llamada zapatos, por lo que tenemos imágenes de smart shoes , Casual shoes y más paso un Id como parámetro

  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;

}

en el lado receptor, luego atravieso mi araylist

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

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

con este método configurará imágenes para todas sus vistas de imágenes.