From 69ed3d5826b662b2e73871a7c0abcf60ca15b754 Mon Sep 17 00:00:00 2001 From: charlie52u <quentin.charlier8@etu.univ-lorraine.fr> Date: Tue, 12 Dec 2023 10:52:29 +0100 Subject: [PATCH] ajout de la ligne d'horizon --- .../com/example/view_editor/Orientations.java | 5 +++ .../view_editor/views/DrawHorizon.java | 43 +++++++++++++++++++ .../main/res/layout/activity_orientations.xml | 9 +++- 3 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 view_editor/app/src/main/java/com/example/view_editor/views/DrawHorizon.java diff --git a/view_editor/app/src/main/java/com/example/view_editor/Orientations.java b/view_editor/app/src/main/java/com/example/view_editor/Orientations.java index a667894..39e8c94 100644 --- a/view_editor/app/src/main/java/com/example/view_editor/Orientations.java +++ b/view_editor/app/src/main/java/com/example/view_editor/Orientations.java @@ -7,6 +7,7 @@ import android.hardware.SensorManager; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import com.example.view_editor.views.DrawBoussole; +import com.example.view_editor.views.DrawHorizon; public class Orientations extends AppCompatActivity implements SensorEventListener{ @@ -17,6 +18,7 @@ public class Orientations extends AppCompatActivity implements SensorEventListen private float[] simpleGravity = new float[3]; private float azimuth; // Angle en degrés DrawBoussole db; + DrawHorizon dh; @Override protected void onCreate(Bundle savedInstanceState) { @@ -24,6 +26,7 @@ public class Orientations extends AppCompatActivity implements SensorEventListen setContentView(R.layout.activity_orientations); db = findViewById(R.id.drawBoussole_view); + dh = findViewById(R.id.drawHorizon_view); sm = (SensorManager) getSystemService(SENSOR_SERVICE); sMagnet = sm.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD); @@ -45,6 +48,8 @@ public class Orientations extends AppCompatActivity implements SensorEventListen if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { simpleGravity = event.values; + float inclinaison = (float) Math.toDegrees(Math.atan2(simpleGravity[0], simpleGravity[1])); + dh.draw(inclinaison); } if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) diff --git a/view_editor/app/src/main/java/com/example/view_editor/views/DrawHorizon.java b/view_editor/app/src/main/java/com/example/view_editor/views/DrawHorizon.java new file mode 100644 index 0000000..1a61486 --- /dev/null +++ b/view_editor/app/src/main/java/com/example/view_editor/views/DrawHorizon.java @@ -0,0 +1,43 @@ +package com.example.view_editor.views; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.util.AttributeSet; +import android.view.View; + +public class DrawHorizon extends View { + + Paint paint; + float inclinaison; + + public DrawHorizon(Context c, AttributeSet attr){ + super(c, attr); + + inclinaison = 0; + + paint = new Paint(); + paint.setStrokeWidth(5.0f); + paint.setStyle(Paint.Style.STROKE); + + } + + public void draw(float inclinaison){ + this.inclinaison = inclinaison; + invalidate(); + } + + @Override + public void onDraw(Canvas cv){ + super.onDraw(cv); + + int centerY = getHeight()/2; + + cv.rotate(-inclinaison, getWidth()/2, centerY); + cv.drawLine(0, centerY, getWidth(), centerY, paint); + + + + } + +} diff --git a/view_editor/app/src/main/res/layout/activity_orientations.xml b/view_editor/app/src/main/res/layout/activity_orientations.xml index b2a8020..bcbb2bc 100644 --- a/view_editor/app/src/main/res/layout/activity_orientations.xml +++ b/view_editor/app/src/main/res/layout/activity_orientations.xml @@ -11,5 +11,12 @@ android:layout_width="346dp" android:layout_height="372dp" android:id="@+id/drawBoussole_view" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toTopOf="parent"/> + app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toTopOf="parent" + app:layout_constraintHorizontal_bias="0.492" app:layout_constraintVertical_bias="0.896"/> + <com.example.view_editor.views.DrawHorizon + android:layout_width="405dp" + android:layout_height="134dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" app:layout_constraintBottom_toTopOf="@+id/drawBoussole_view" + app:layout_constraintTop_toTopOf="parent" android:id="@+id/drawHorizon_view"/> </androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file -- GitLab