Commit 4d5786fb9ff9a7ee71a0448c5da0809cb2e36b22

Authored by aarnaude
1 parent 99fbb132

ajout scene 3 : drag n drop multiples

app/src/main/AndroidManifest.xml
... ... @@ -64,10 +64,18 @@
64 64 </activity>
65 65  
66 66 <activity
67   - android:name=".BravoActivity"
  67 + android:name=".TutorialScene3Activity"
  68 + android:parentActivityName=".TutorialScene1Activity"
68 69 android:screenOrientation="userLandscape">
  70 + <meta-data
  71 + android:name="android.support.PARENT_ACTIVITY"
  72 + android:value=".MainActivity" />
69 73 </activity>
70 74  
  75 + <activity
  76 + android:name=".BravoActivity"
  77 + android:screenOrientation="userLandscape"></activity>
  78 +
71 79 </application>
72 80  
73 81 </manifest>
74 82 \ No newline at end of file
... ...
app/src/main/java/tonio/noa/TutorialScene2Activity.java
1 1 package tonio.noa;
2 2  
3 3 import android.content.ClipData;
  4 +import android.content.Intent;
4 5 import android.os.Build;
5 6 import android.os.Bundle;
6 7 import android.view.DragEvent;
... ... @@ -68,7 +69,7 @@ public class TutorialScene2Activity extends MyPlayActivity implements View.OnTou
68 69 case DragEvent.ACTION_DROP:
69 70 //handle the dragged view being dropped over a target view
70 71 View view = (View) event.getLocalState();
71   - if(v==findViewById(R.id.red_rectangle)) {
  72 + if (v == findViewById(R.id.red_rectangle)) {
72 73 //stop displaying the view where it was before it was dragged
73 74 view.setVisibility(View.INVISIBLE);
74 75 //view dragged item is being dropped on
... ... @@ -86,6 +87,7 @@ public class TutorialScene2Activity extends MyPlayActivity implements View.OnTou
86 87  
87 88 @Override
88 89 protected void next() {
  90 + startActivity(new Intent(this, TutorialScene3Activity.class));
89 91 finish();
90 92 }
91 93  
... ...
app/src/main/java/tonio/noa/TutorialScene3Activity.java 0 → 100644
... ... @@ -0,0 +1,102 @@
  1 +package tonio.noa;
  2 +
  3 +import android.content.ClipData;
  4 +import android.os.Build;
  5 +import android.os.Bundle;
  6 +import android.view.DragEvent;
  7 +import android.view.MotionEvent;
  8 +import android.view.View;
  9 +import android.widget.ImageView;
  10 +
  11 +/**
  12 + * Created by psyk on 15/01/18.
  13 + */
  14 +
  15 +public class TutorialScene3Activity extends MyPlayActivity implements View.OnTouchListener, View.OnDragListener {
  16 +
  17 + @Override
  18 + protected void onCreate(Bundle savedInstanceState) {
  19 +
  20 + super.onCreate(savedInstanceState);
  21 + setContentView(R.layout.tutorial3_display);
  22 +
  23 + findViewById(R.id.blue_rectangle31).setOnTouchListener(this);
  24 + findViewById(R.id.blue_rectangle32).setOnTouchListener(this);
  25 + findViewById(R.id.red_rectangle31).setOnTouchListener(this);
  26 + findViewById(R.id.red_rectangle32).setOnTouchListener(this);
  27 + findViewById(R.id.green_rectangle31).setOnTouchListener(this);
  28 + findViewById(R.id.green_rectangle32).setOnTouchListener(this);
  29 +
  30 + findViewById(R.id.blue_rectangle31).setOnDragListener(this);
  31 + findViewById(R.id.blue_rectangle32).setOnDragListener(this);
  32 + findViewById(R.id.red_rectangle31).setOnDragListener(this);
  33 + findViewById(R.id.red_rectangle32).setOnDragListener(this);
  34 + findViewById(R.id.green_rectangle31).setOnDragListener(this);
  35 + findViewById(R.id.green_rectangle32).setOnDragListener(this);
  36 + }
  37 +
  38 + @Override
  39 + public boolean onTouch(View view, MotionEvent event) {
  40 + if (event.getAction() == MotionEvent.ACTION_DOWN) {
  41 +
  42 + View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view);
  43 + ClipData data = ClipData.newPlainText("id", view.getResources().getResourceEntryName(view.getId()));
  44 +
  45 + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
  46 + view.startDragAndDrop(data, shadowBuilder, view, 0);
  47 + } else {
  48 + view.startDrag(data, shadowBuilder, view, 0);
  49 + }
  50 + return true;
  51 + } else
  52 + return false;
  53 + }
  54 +
  55 + @Override
  56 + public boolean onDrag(View v, DragEvent event) {
  57 + switch (event.getAction()) {
  58 + // signal for the start of a drag and drop operation
  59 + case DragEvent.ACTION_DRAG_STARTED:
  60 + // do nothing
  61 + break;
  62 +
  63 + // the drag point has entered the bounding box of the View
  64 + case DragEvent.ACTION_DRAG_ENTERED:
  65 + // do nothing
  66 + break;
  67 +
  68 + // the user has moved the drag shadow outside the bounding box of the View
  69 + case DragEvent.ACTION_DRAG_EXITED:
  70 + // do nothing
  71 + break;
  72 +
  73 + // the drag and drop operation has concluded
  74 + case DragEvent.ACTION_DRAG_ENDED:
  75 + break;
  76 +
  77 + //drag shadow has been released,the drag point is within the bounding box of the View
  78 + case DragEvent.ACTION_DROP:
  79 + //handle the dragged view being dropped over a target view
  80 + View view = (View) event.getLocalState();
  81 + if (v == findViewById(R.id.red_rectangle)) {
  82 + //stop displaying the view where it was before it was dragged
  83 + view.setVisibility(View.INVISIBLE);
  84 + //view dragged item is being dropped on
  85 + ImageView dropTarget = (ImageView) v;
  86 + //view being dragged and dropped
  87 + ImageView dropped = (ImageView) view;
  88 + dropTarget.setBackgroundColor(dropped.getSolidColor());
  89 + bravoPage(v);
  90 + }
  91 + break;
  92 + }
  93 +
  94 + return true;
  95 + }
  96 +
  97 + @Override
  98 + protected void next() {
  99 + finish();
  100 + }
  101 +
  102 +}
... ...
app/src/main/res/drawable/green_rectangle.xml 0 → 100644
... ... @@ -0,0 +1,6 @@
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<shape xmlns:android="http://schemas.android.com/apk/res/android"
  3 + android:shape="rectangle">
  4 + <solid android:color="@android:color/holo_green_light"/>
  5 + <corners android:radius="5dp"/>
  6 +</shape>
0 7 \ No newline at end of file
... ...
app/src/main/res/layout/tutorial2_display.xml
... ... @@ -34,7 +34,7 @@
34 34 android:layout_width="wrap_content"
35 35 android:layout_height="wrap_content"
36 36 android:layout_alignParentBottom="true"
37   - android:layout_alignParentLeft="true"
  37 + android:layout_alignParentStart="true"
38 38 android:layout_margin="5dp"
39 39 android:onClick="backHome"
40 40 android:text="@string/home" />
... ...
app/src/main/res/layout/tutorial3_display.xml 0 → 100644
... ... @@ -0,0 +1,86 @@
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3 + android:id="@+id/tut3"
  4 + android:layout_width="match_parent"
  5 + android:layout_height="match_parent"
  6 + android:orientation="vertical">
  7 +
  8 + <TextView
  9 + android:id="@+id/text3"
  10 + android:layout_width="wrap_content"
  11 + android:layout_height="wrap_content"
  12 + android:layout_centerHorizontal="true"
  13 + android:layout_margin="20dp"
  14 + android:text="Associe les carrés de même couleur ensemble."
  15 + android:textSize="15sp" />
  16 +
  17 + <ImageView
  18 + android:id="@+id/blue_rectangle31"
  19 + android:layout_width="50dp"
  20 + android:layout_height="50dp"
  21 + android:layout_alignParentStart="true"
  22 + android:layout_below="@id/text3"
  23 + android:layout_margin="50dp"
  24 + android:background="@drawable/blue_rectangle" />
  25 +
  26 +
  27 + <ImageView
  28 + android:id="@+id/red_rectangle31"
  29 + android:layout_width="50dp"
  30 + android:layout_height="50dp"
  31 + android:layout_alignParentEnd="true"
  32 + android:layout_below="@id/text3"
  33 + android:layout_margin="50dp"
  34 + android:background="@drawable/red_rectangle"
  35 + android:nextFocusRight="@id/blue_rectangle31" />
  36 +
  37 + <ImageView
  38 + android:id="@+id/green_rectangle31"
  39 + android:layout_width="50dp"
  40 + android:layout_height="50dp"
  41 + android:layout_alignParentStart="true"
  42 + android:layout_below="@id/blue_rectangle31"
  43 + android:layout_margin="50dp"
  44 + android:background="@drawable/green_rectangle" />
  45 +
  46 +
  47 + <ImageView
  48 + android:id="@+id/red_rectangle32"
  49 + android:layout_width="50dp"
  50 + android:layout_height="50dp"
  51 + android:layout_alignParentEnd="true"
  52 + android:layout_below="@id/red_rectangle31"
  53 + android:layout_margin="50dp"
  54 + android:background="@drawable/red_rectangle"
  55 + android:nextFocusRight="@id/green_rectangle31" />
  56 +
  57 + <ImageView
  58 + android:id="@+id/blue_rectangle32"
  59 + android:layout_width="50dp"
  60 + android:layout_height="50dp"
  61 + android:layout_alignParentStart="true"
  62 + android:layout_below="@id/green_rectangle31"
  63 + android:layout_margin="50dp"
  64 + android:background="@drawable/blue_rectangle" />
  65 +
  66 + <ImageView
  67 + android:id="@+id/green_rectangle32"
  68 + android:layout_width="50dp"
  69 + android:layout_height="50dp"
  70 + android:layout_alignParentEnd="true"
  71 + android:layout_below="@id/red_rectangle32"
  72 + android:layout_margin="50dp"
  73 + android:background="@drawable/green_rectangle"
  74 + android:nextFocusRight="@id/blue_rectangle32" />
  75 +
  76 + <Button
  77 + android:id="@+id/button_id_home"
  78 + android:layout_width="wrap_content"
  79 + android:layout_height="wrap_content"
  80 + android:layout_alignParentBottom="true"
  81 + android:layout_alignParentStart="true"
  82 + android:layout_margin="5dp"
  83 + android:onClick="backHome"
  84 + android:text="@string/home" />
  85 +
  86 +</RelativeLayout>
0 87 \ No newline at end of file
... ...