I just wrote this class that does the job:

    import android.content.Context;
    import android.graphics.Color;
    
    import com.esri.arcgisruntime.geometry.Point;
    import com.esri.arcgisruntime.geometry.PointCollection;
    import com.esri.arcgisruntime.geometry.Polygon;
    import com.esri.arcgisruntime.geometry.SpatialReference;
    import com.esri.arcgisruntime.mapping.view.Graphic;
    import com.esri.arcgisruntime.mapping.view.GraphicsOverlay;
    import com.esri.arcgisruntime.symbology.SimpleFillSymbol;
    import com.esri.arcgisruntime.symbology.SimpleLineSymbol;
    
    import java.util.List;
    
    public class ARCGISCircle {
        private Point center;
        private double radius;
        private int strokeColor;
        private double strokeWidth;
        private SimpleLineSymbol.Style strokePattern;
        private int fillColor;
        private SimpleFillSymbol.Style fillPattern;
        private int pointCount;
        private int zIndex;
    
        private Context context;
        private SpatialReference spatialReference;
        private Graphic graphicCircle;
        private static final int POINT_COUNT = 36;
    
        private static int EARTH_RADIUS = 6378800;
    
        public ARCGISCircle(Builder builder) {
            center = builder.center;
            radius = builder.radius;
            strokeColor = builder.strokeColor;
            strokeWidth = builder.strokeWidth;
            fillColor = builder.fillColor;
            context = builder.context;
            spatialReference = builder.spatialReference;
            pointCount = builder.pointCount;
            zIndex = builder.zIndex;
            strokePattern = builder.strokePattern;
            fillPattern = builder.fillPattern;
        }
    
        /**
         * Add a circle on a graphic overlay
         * @param graphicOverlay drawing sheet
         * @return if the action was successfully completed
         */
        public final boolean addCircleOn(GraphicsOverlay graphicOverlay){
            boolean drawingOk = false;
            if(graphicOverlay != null && radius > 0 && drawCircle()){
                graphicOverlay.getGraphics().add(this.graphicCircle);
                drawingOk = true;
            }
            return drawingOk;
        }
    
        /**
         * Delete a circle
         * @param graphicOverlay drawing sheet
         * @return if the action was successfully completed
         */
        public final boolean removeCircleFrom(GraphicsOverlay graphicOverlay){
            boolean deletionOk = false;
            if(graphicOverlay != null){
                List<Graphic> itsGraphics = graphicOverlay.getGraphics();
                if(itsGraphics != null && itsGraphics.size() > 0){
                    itsGraphics.remove(this.graphicCircle);
                    deletionOk = true;
                }
            }
            return deletionOk;
        }
    
        /**
         * Draw a graphic circle
         * @return if the action was successfully completed
         */
        private boolean drawCircle(){
            boolean operationOk = false;
            if(this.spatialReference != null ){
    
                Polygon circlePolygon = drawPolygonCircle(this.center,this.radius,this.pointCount,this.spatialReference);                      //simple line symbol
                if(circlePolygon != null){ //was successfully drawn
                    SimpleLineSymbol outlineSymbol = new SimpleLineSymbol(this.strokePattern, this.strokeColor, (float) this.strokeWidth);
                    SimpleFillSymbol fillSymbol = new SimpleFillSymbol(this.fillPattern, this.fillColor, outlineSymbol);
                    this.graphicCircle = new Graphic(circlePolygon,fillSymbol);
                    if(zIndex > -1)
                        this.graphicCircle.setZIndex(this.zIndex);
                }
    
                if(graphicCircle != null){
                    operationOk = true;
                }
            }
    
            return operationOk;
        }
    
        /**
         * Draw a polygon circle
         * @param origin origin of the polygon
         * @param radius in meters
         * @param pointCount the number of point on the arc of the circle
         * @param spatialReference the spatial reference
         * @return a polygon formed of arc of circles
         */
        private Polygon drawPolygonCircle(Point origin, double radius,int pointCount, SpatialReference spatialReference ){
            if(radius > 0 && spatialReference != null && origin != null){
                PointCollection corners = new PointCollection(spatialReference);
                double radianFactor = 2*Math.PI/pointCount;
                for(int i = 1; i <= pointCount; i++ ){
                    corners.add(getPolygonPoint(origin, radius, i * radianFactor));
                }
                return new Polygon(corners);
            }
            return null;
        }
    
        /**
         * Defines the location of each point that will form the circle
         * @param center the center of the final circle
         * @param radius the radius of the circle
         * @param angle the angle (formed by segment from the center to the radius)
         * @return a new Location point
         * Source: original code from : https://stackoverflow.com/a/13901270/3808178
         */
        private Point getPolygonPoint(Point center, double radius, double angle) {
            // Get the coordinates of a circle point at the given angle
            double east = radius * Math.cos(angle);
            double north = radius * Math.sin(angle);
    
            double cLat = center.getY();
            double cLng = center.getX();
    
            double latRadius = EARTH_RADIUS * Math.cos(cLat / 180 * Math.PI);
    
            double newLat = cLat + (north / EARTH_RADIUS / Math.PI * 180);
            double newLng = cLng + (east / latRadius / Math.PI * 180);
    
            return new Point(newLng,newLat);
        }
    
        /**
         * Static builder class
         */
        public static class Builder {
            private Point center;
            private double radius = 0;
            private int strokeColor = Color.RED;
            private double strokeWidth = 2;
            private int fillColor = Color.RED;
            private int pointCount = POINT_COUNT;
            private int zIndex = -1;
            private SimpleLineSymbol.Style strokePattern = SimpleLineSymbol.Style.SOLID;
            private SimpleFillSymbol.Style fillPattern = SimpleFillSymbol.Style.SOLID;
    
            private SpatialReference spatialReference;
            private Context context;
    
            public Builder(Context context,SpatialReference spatialReference) {
                this.context = context;
                this.spatialReference = spatialReference;
            }
    
            public Builder center(Point value) {
                if(value == null)
                    throw new NullPointerException ("The location is null, it shouldn't be so.");
    
                center = value;
                return this;
            }
    
            public Builder radius(double value) {
                radius = value;
                return this;
            }
    
            public Builder strokeColor(int value) {
                strokeColor = value;
                return this;
            }
    
            public Builder strokeWidth(double value) {
                strokeWidth = value;
                return this;
            }
    
            public Builder fillColor(int value) {
                fillColor = value;
                return this;
            }
    
            public Builder pointCount(int value) {
                pointCount = value;
                return this;
            }
    
            public Builder zIndex(int value) {
                zIndex = value;
                return this;
            }
    
            public Builder strokePattern(SimpleLineSymbol.Style value) {
                strokePattern = value;
                return this;
            }
    
            public Builder fillPattern(SimpleFillSymbol.Style value) {
                fillPattern = value;
                return this;
            }
    
            public ARCGISCircle build() {
                return new ARCGISCircle(this);
            }
        }
    
        /**
         * Get the graphic representing the circle
         * @return
         */
        public Graphic getGraphicCircle() {
            return graphicCircle;
        }
    
        public void setVisible(boolean visible){
            if(graphicCircle != null)
                graphicCircle.setVisible(visible);
        }
    
        public boolean isVisible(){
            boolean isVisible = false;
            if(graphicCircle != null)
                isVisible = graphicCircle.isVisible();
    
            return isVisible;
        }
    }

And to call it you just do this:

    /**
         * Sets a radius describing the accuracy of the location
         * @param location containing the radius and the coordinates of the center of the radius
         */
        public void setRadius(Location location){
    	
            if(locationRadius != null)
                locationRadius.removeCircleFrom(layer);
    
            locationRadius = new ARCGISCircle.Builder(getApplicationContext(),wgs84)
                    .center(new Point(location.getLongitude(),location.getLatitude()))
                    .radius(location.getAccuracy())
                    .strokeColor(Color.RED)
                    .fillColor(Color.BLUE)
    				.fillPattern(SimpleFillSymbol.Style.CROSS)
    				//...
                    .build();
    
            locationRadius.addCircleOn(layer);
        }