Skip to content
Snippets Groups Projects
Commit d2fd9e39 authored by SCHILLING Juliette's avatar SCHILLING Juliette
Browse files

affichage rect + corrections

parent 12c032fe
No related branches found
No related tags found
No related merge requests found
package com.example.myhabitat;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.graphics.*;
import android.util.Log;
import android.view.MotionEvent;
import android.view.SurfaceView;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.*;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import habitat.Habitat;
......@@ -19,17 +16,20 @@ import habitat.Piece;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.lang.reflect.Array;
public class CreationOuvertureActivity extends AppCompatActivity{
private Habitat habitat;
private ImageView imageViewDepart;
private ImageView imageViewArrivee;
private Piece pieceDepart;
private Piece pieceArrivee;
private Piece pieceEnCours;
private Orientation orientationPieceDepart;
private Orientation orientationPieceArrivee;
private Paint myPaint;
private Canvas canvasDepart;
private Rect rectDepart;
private Rect rectArrivee;
@Override
protected void onCreate(Bundle savedInstanceState) {
......@@ -47,7 +47,13 @@ public class CreationOuvertureActivity extends AppCompatActivity{
}
imageViewDepart = findViewById(R.id.imageViewDepart);
imageViewArrivee = findViewById(R.id.imageViewArrivee);
myPaint = new Paint();
myPaint.setStrokeWidth(5);
myPaint.setColor(Color.BLUE);
myPaint.setStyle(Paint.Style.STROKE);
setSurfaceForSelect();
Spinner spinnerD = findViewById(R.id.spinnerDepart);
Spinner spinnerDOrientation = findViewById(R.id.spinnerDOrientation);
......@@ -75,7 +81,6 @@ public class CreationOuvertureActivity extends AppCompatActivity{
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
pieceDepart = habitat.getPieces().get(position);
affichePieceDepart();
}
@Override
......@@ -104,7 +109,6 @@ public class CreationOuvertureActivity extends AppCompatActivity{
orientationPieceDepart = Orientation.SUD;
break;
}
affichePieceDepart();
}
@Override
......@@ -118,7 +122,6 @@ public class CreationOuvertureActivity extends AppCompatActivity{
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
pieceArrivee = habitat.getPieces().get(position);
affichePieceArrivee();
}
@Override
......@@ -147,7 +150,6 @@ public class CreationOuvertureActivity extends AppCompatActivity{
orientationPieceArrivee = Orientation.SUD;
break;
}
affichePieceArrivee();
}
@Override
......@@ -157,6 +159,58 @@ public class CreationOuvertureActivity extends AppCompatActivity{
});
}
private void setSurfaceForSelect() {
SurfaceView surfaceViewDepart = findViewById(R.id.surfaceViewDepart);
surfaceViewDepart.setZOrderOnTop(true);
surfaceViewDepart.getHolder().setFormat(PixelFormat.TRANSPARENT);
canvasDepart = surfaceViewDepart.getHolder().lockCanvas();
imageViewDepart.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getPointerCount() == 2) {
float x1, x2, y1, y2;
x1 = event.getX(0);
y1 = event.getY(0);
x2 = event.getX(1);
y2 = event.getY(1);
Log.i("SelectActivity", "################################################# Coords : " + x1 + " | " + y1 + " & " + x2 + " | " + y2);
rectDepart = new Rect((int) x1, (int) y1, (int) x2, (int) y2);
rectDepart.sort();
try {
canvasDepart = surfaceViewDepart.getHolder().lockCanvas();
synchronized (surfaceViewDepart.getHolder()) {
canvasDepart.drawColor(0, PorterDuff.Mode.CLEAR);
canvasDepart.drawRect(rectDepart, myPaint);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (canvasDepart != null) {
surfaceViewDepart.getHolder().unlockCanvasAndPost(canvasDepart);
}
}
//Log.i("SelectActivity", "################################################# Coords Rect : " + rect.left + " | " + rect.top + " & " + rect.right + " | " + rect.bottom);
}
if (event.getAction() == MotionEvent.ACTION_UP) {
if (rectDepart != null) {
Log.i("Touchup", "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ je releve mon doigt");
//showImage();
}
}
return true;
}
});
}
public void affichePieceDepart(){
if(pieceDepart != null && orientationPieceDepart != null){
......@@ -174,6 +228,12 @@ public class CreationOuvertureActivity extends AppCompatActivity{
}else{
imageViewDepart.setImageDrawable(getDrawable(R.drawable.imagemur));
}
imageViewDepart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
}
......@@ -190,11 +250,20 @@ public class CreationOuvertureActivity extends AppCompatActivity{
if (fis != null) {
Bitmap bm = BitmapFactory.decodeStream(fis);
imageViewArrivee.setImageBitmap(bm);
imageViewDepart.setImageBitmap(bm);
}else{
imageViewArrivee.setImageDrawable(getDrawable(R.drawable.imagemur));
imageViewDepart.setImageDrawable(getDrawable(R.drawable.imagemur));
}
}
}
public void setSDepart(View view) {
pieceEnCours = pieceDepart;
affichePieceDepart();
}
public void setSArrivee(View view) {
pieceEnCours = pieceArrivee;
affichePieceArrivee();
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".CreationOuvertureActivity">
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".CreationOuvertureActivity"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:layout_width="186dp"
android:layout_height="187dp"
app:srcCompat="@drawable/imagemur"
android:id="@+id/imageViewArrivee"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintHorizontal_bias="0.502"
android:layout_marginBottom="32dp"/>
<ImageView
android:layout_width="186dp"
android:layout_height="187dp"
android:layout_width="414dp"
android:layout_height="355dp"
app:srcCompat="@drawable/imagemur"
android:id="@+id/imageViewDepart"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/spinnerAOrientation"
android:layout_marginTop="60dp"
app:layout_constraintHorizontal_bias="0.502"
app:layout_constraintBottom_toTopOf="@+id/imageViewArrivee"
app:layout_constraintVertical_bias="0.0"/>
app:layout_constraintTop_toBottomOf="@+id/buttonSArrivee"
/>
<Spinner
android:layout_width="130dp"
......@@ -112,9 +100,42 @@
android:layout_height="33dp"
android:id="@+id/spinnerDOrientation"
app:layout_constraintTop_toBottomOf="@+id/textView3"
android:layout_marginTop="16dp"
android:layout_marginTop="20dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.097"/>
<SurfaceView
android:layout_width="414dp"
android:layout_height="355dp"
android:id="@+id/surfaceViewDepart"
app:layout_constraintEnd_toEndOf="@+id/imageViewDepart"
app:layout_constraintStart_toStartOf="@+id/imageViewDepart"
app:layout_constraintTop_toTopOf="@+id/imageViewDepart"
android:layout_marginTop="0dp"
app:layout_constraintHorizontal_bias="0.0"/>
<Button
android:text="Selectionner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/buttonSDepart"
android:onClick="setSDepart"
app:layout_constraintTop_toBottomOf="@+id/spinnerDOrientation"
app:layout_constraintEnd_toStartOf="@+id/buttonSArrivee"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="16dp"
app:layout_constraintHorizontal_bias="0.419"/>
<Button
android:text="Selectionner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/buttonSArrivee"
android:onClick="setSArrivee"
app:layout_constraintTop_toBottomOf="@+id/spinnerAOrientation"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="40dp"
android:layout_marginTop="16dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment