diff --git a/app/src/main/java/fr/ul/projet/AccesActivity.java b/app/src/main/java/fr/ul/projet/AccesActivity.java
index f7a47d8cc145fe59af2f7cf5ac95170e318a59f6..ac8664f29fc63248e825baabf36b35fd22cab574 100644
--- a/app/src/main/java/fr/ul/projet/AccesActivity.java
+++ b/app/src/main/java/fr/ul/projet/AccesActivity.java
@@ -62,9 +62,25 @@ public class AccesActivity extends AppCompatActivity {
         TextView textView = findViewById(R.id.textView2);
         textView.setText(getString(R.string.acces, this.modele.getNom(), this.piece.getNom(), direction));
 
-        ImageView imageView = findViewById(R.id.imageView);
+
+        DrawableImageView imageView = findViewById(R.id.imageView);
         imageView.setImageURI(photo);
 
+        Button ajouter = findViewById(R.id.boutonAcces);
+
+        ajouter.setOnClickListener(v -> {
+            imageView.setDrawing();
+        });
+
+
+        imageView.setOnRectangleClickListener(new DrawableImageView.OnRectangleClickListener() {
+            @Override
+            public void onRectangleClick(int rectangleId) {
+                Toast.makeText(AccesActivity.this, "Rectangle " + rectangleId + " cliqué", Toast.LENGTH_SHORT).show();
+            }
+        });
+
+
         ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.acces), (v, insets) -> {
             Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
             v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
diff --git a/app/src/main/java/fr/ul/projet/DrawableImageView.java b/app/src/main/java/fr/ul/projet/DrawableImageView.java
new file mode 100644
index 0000000000000000000000000000000000000000..a7c9b65c30704cd5354d9137f534cbd0168f8b9e
--- /dev/null
+++ b/app/src/main/java/fr/ul/projet/DrawableImageView.java
@@ -0,0 +1,134 @@
+package fr.ul.projet;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.RectF;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+
+
+import androidx.appcompat.widget.AppCompatImageView;
+
+import java.util.HashMap;
+
+
+public class DrawableImageView extends AppCompatImageView {
+
+    private Paint paint;
+    private HashMap<Integer,RectF> rectangles = new HashMap<>();
+    private HashMap<Integer,RectF> rectanglesTemp = new HashMap<>();
+    private float startX, startY, endX, endY;
+    private boolean isDrawingFinished = false;
+    private boolean fixed = false;
+    private boolean drawing = false;
+    private OnRectangleClickListener listener;
+
+    public DrawableImageView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        init();
+    }
+
+    public DrawableImageView(Context context) {
+        super(context);
+        init();
+    }
+
+    private void init() {
+        paint = new Paint();
+        paint.setColor(Color.RED);
+        paint.setStyle(Paint.Style.STROKE);
+        paint.setStrokeWidth(5);
+    }
+
+    @Override
+    public boolean performClick() {
+        super.performClick(); // Appeler la méthode de la superclasse pour marquer le clic
+        return true;
+    }
+
+    @Override
+    protected void onDraw(Canvas canvas) {
+        super.onDraw(canvas);
+        for (RectF rect : rectangles.values()) {
+            canvas.drawRect(rect, paint);
+        }
+        for (RectF rect : rectanglesTemp.values()) {
+            canvas.drawRect(rect, paint);
+        }
+    }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent event) {
+
+        if (isDrawingFinished){
+            // Vérifier si l'utilisateur a cliqué sur un rectangle existant
+            for (Integer key : rectangles.keySet()) {
+                RectF rect = rectangles.get(key);
+                if (rect.contains(event.getX(), event.getY())) {
+                    performClick();
+                    if (listener != null) {
+                        listener.onRectangleClick(key); // Passer l'ID du rectangle cliqué
+
+                    }
+
+                    return true; // Clic détecté, on arrête l'événement
+                }
+            }
+            return false;
+        }
+        if (!drawing){
+            return  false;
+        }
+
+        switch (event.getAction()) {
+            case MotionEvent.ACTION_DOWN:
+                startX = event.getX();
+                startY = event.getY();
+                isDrawingFinished = false;
+                return true;
+
+            case MotionEvent.ACTION_MOVE:
+                if (!fixed) {
+                    endX = event.getX();
+                    endY = event.getY();
+                    // Mettre à jour un rectangle temporaire en cours de dessin
+                    rectanglesTemp.put(-1, new RectF(
+                            Math.min(startX, endX), Math.min(startY, endY),
+                            Math.max(startX, endX), Math.max(startY, endY)
+                    ));
+                    invalidate();
+                }
+                return true;
+
+            case MotionEvent.ACTION_UP:
+                if (!fixed) {
+                    RectF rect = new RectF(
+                            Math.min(startX, endX), Math.min(startY, endY),
+                            Math.max(startX, endX), Math.max(startY, endY)
+                    );
+                    rectangles.put(rectangles.size(), rect);
+                    rectanglesTemp.clear();
+                    fixed = true;
+                    drawing=false;
+                    isDrawingFinished=true;
+                    invalidate();
+                }
+                return true;
+        }
+        return false;
+    }
+
+    public  void setDrawing(){
+        drawing = true;
+    }
+
+    public void setOnRectangleClickListener(OnRectangleClickListener listener) {
+        this.listener = listener;
+    }
+
+    public interface OnRectangleClickListener {
+        void onRectangleClick(int rectangleId);
+    }
+}
diff --git a/app/src/main/res/layout/activity_acces.xml b/app/src/main/res/layout/activity_acces.xml
index 4a5f3d4c263e9f32dd1b47d34eca61e4dfde38e5..c7d2703d3498dfa67d55c53e7b8fb36245447f1b 100644
--- a/app/src/main/res/layout/activity_acces.xml
+++ b/app/src/main/res/layout/activity_acces.xml
@@ -32,7 +32,7 @@
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintVertical_bias="0.951" />
 
-    <ImageView
+    <fr.ul.projet.DrawableImageView
         android:id="@+id/imageView"
         android:layout_width="399dp"
         android:layout_height="248dp"
@@ -40,7 +40,8 @@
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent"
-        tools:srcCompat="@tools:sample/backgrounds/scenic" />
+        tools:srcCompat="@tools:sample/backgrounds/scenic"/>
+
 
     <TextView
         android:id="@+id/textView2"
@@ -53,4 +54,16 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintVertical_bias="0.254" />
+
+    <Button
+        android:id="@+id/boutonAcces"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/boutonAcces"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.498"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintVertical_bias="0.745" />
 </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 4fa53b305d17d066f0a26072531bb2462969b46b..eb02253c20983ccbfbd216c07736820bc3ecd4aa 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -15,4 +15,5 @@
     <string name="ouest">Photo Ouest</string>
     <string name="piece_nom">%1$s : %2$s</string>
     <string name="acces">%1$s : %2$s (%3$s)</string>
+    <string name="boutonAcces">Ajouter un accés</string>
 </resources>
\ No newline at end of file