{"id":203,"date":"2012-11-19T21:43:48","date_gmt":"2012-11-19T20:43:48","guid":{"rendered":"http:\/\/chezdom.net\/etu\/?page_id=203"},"modified":"2012-12-25T21:50:32","modified_gmt":"2012-12-25T20:50:32","slug":"swipescreenactivity-java-corrige","status":"publish","type":"page","link":"https:\/\/chezdom.net\/etu\/doc\/android\/android-tp2\/swipescreenactivity-java-corrige\/","title":{"rendered":"SwipeScreenActivity.java (corrig\u00e9)"},"content":{"rendered":"<pre class=\"brush: java; gutter: true\">package net.chezdom.android.cours_201204_touch;\r\n\r\nimport net.chezdom.android.cours_201204_touch.R;\r\nimport android.os.Bundle;\r\nimport android.app.Activity;\r\nimport android.graphics.Color;\r\nimport android.util.Log;\r\nimport android.view.Menu;\r\nimport android.view.MenuItem;\r\nimport android.view.MotionEvent;\r\nimport android.view.View;\r\nimport android.view.View.OnTouchListener;\r\nimport android.widget.TextView;\r\nimport android.support.v4.app.NavUtils;\r\n\r\npublic class SwipeScreenActivity extends Activity implements OnTouchListener {\r\n\r\n\tprivate TextView tv;\r\n\tprivate int MyColors[] = {Color.RED, Color.YELLOW, Color.GREEN, Color.BLUE};\r\n\tprivate int colidx=0;\r\n\tprivate float savedX=0;\r\n\r\n\t@Override\r\n    public void onCreate(Bundle savedInstanceState) {\r\n        super.onCreate(savedInstanceState);\r\n        setContentView(R.layout.activity_swipe_screen);\r\n\r\n        tv=(TextView) this.findViewById(R.id.textview1);\r\n        tv.setOnTouchListener(this);\r\n        tv.setBackgroundColor(MyColors[colidx]);\r\n    }\r\n\r\n    @Override\r\n    public boolean onCreateOptionsMenu(Menu menu) {\r\n        getMenuInflater().inflate(R.menu.activity_swipe_screen, menu);\r\n        return true;\r\n    }\r\n\r\n\t@Override\r\n\tpublic boolean onTouch(View v, MotionEvent event) {\r\n\t\tint prec=200; \/\/ Il serait bien meilleur de calculer l&#039;angle (voir tests ci-dessous)\r\n\t\t\/\/ sinon un petit mouvement, m\u00eame parfaitement horizontal ne sera pas pris en compte\r\n\t\tswitch (event.getAction()) {\r\n\t\tcase MotionEvent.ACTION_DOWN:\r\n\t\t\tsavedX=event.getX();\r\n\t\t\treturn true;\r\n\t\tcase MotionEvent.ACTION_UP:\r\n\t\t\tif (savedX+prec&lt;event.getX()) \/\/ on a boug\u00e9 vers la droite\r\n\t\t\t\tcolidx=(colidx+1)%MyColors.length;\r\n\t\t\telse if (savedX-prec&gt;event.getX()) \/\/ on a boug\u00e9 vers la gauche\r\n\t\t\t\tcolidx=(colidx-1+MyColors.length)%MyColors.length;\r\n\t\t\ttv.setBackgroundColor(MyColors[colidx]);\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\r\n\t\t\/*\r\n\t\tString TYPE=null;\r\n\t\tswitch (event.getAction()) {\r\n\t\tcase MotionEvent.ACTION_DOWN:\r\n\t\t\tTYPE=&quot;DOWN&quot;;\r\n\t\t\tbreak;\r\n\t\tcase MotionEvent.ACTION_UP:\r\n\t\t\tTYPE=&quot;UP&quot;;\r\n\t\t\tbreak;\r\n\t\tcase MotionEvent.ACTION_MOVE:\r\n\t\t\tTYPE=&quot;MOVE&quot;;\r\n\t\t\tbreak;\t\t\r\n\t\t}\r\n\r\n\t\tif (TYPE==null) return false;\r\n\r\n\t\tfor (int i=0;i&lt;12;i++) {\r\n\t\t\tif (i&lt;event.getPointerCount())\r\n\t\t\t\tLog.d(&quot;onTouch&quot;,&quot;ACTION &quot;+i+&quot; &quot;+TYPE\r\n\t\t\t\t\t\t+&quot; (&quot;+event.getX(i)+&quot;\/&quot;+event.getRawX()\r\n\t\t\t\t\t\t+&quot;,&quot;+event.getY(i)+&quot;\/&quot;+event.getRawY()+&quot;)&quot;);\r\n\t\t}\r\n\t\treturn true;\r\n\t\t*\/\r\n\t}\r\n\r\n\t\/* \r\n\t * Pour traiter les \u00e9v\u00e8nements ind\u00e9pendamment des objets de l&#039;interface\r\n\t * \r\n\t@Override\r\n\tpublic boolean dispatchTouchEvent(MotionEvent event) {\r\n\t\tString TYPE=null;\r\n\t\tswitch (event.getAction()) {\r\n\t\tcase MotionEvent.ACTION_DOWN:\r\n\t\t\tTYPE=&quot;DOWN&quot;;\r\n\t\t\tbreak;\r\n\t\tcase MotionEvent.ACTION_UP:\r\n\t\t\tTYPE=&quot;UP&quot;;\r\n\t\t\tbreak;\r\n\t\tcase MotionEvent.ACTION_MOVE:\r\n\t\t\tTYPE=&quot;MOVE&quot;;\r\n\t\t\tbreak;\t\r\n\t\t}\r\n\t\tif (TYPE==null) \r\n\t\t\treturn super.dispatchTouchEvent(event);\r\n\r\n\t\tfor (int i=0;i&lt;12;i++) {\r\n\t\t\tif (i&lt;event.getPointerCount())\r\n\t\t\t\tLog.d(&quot;dispatchTouch&quot;,&quot;ACTION &quot;+i+&quot; &quot;+TYPE\r\n\t\t\t\t\t\t+&quot; (&quot;+event.getX(i)+&quot;,&quot;+event.getY(i)+&quot;)&quot;);\r\n\t\t}\r\n\t\treturn true;\r\n\t}*\/\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>package net.chezdom.android.cours_201204_touch; import net.chezdom.android.cours_201204_touch.R; import android.os.Bundle; import android.app.Activity; import android.graphics.Color; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.TextView; import android.support.v4.app.NavUtils; public class SwipeScreenActivity extends Activity implements OnTouchListener { private TextView tv; private int MyColors[]<span class=\"ellipsis\">&hellip;<\/span> <span class=\"read-more\"><a href=\"https:\/\/chezdom.net\/etu\/doc\/android\/android-tp2\/swipescreenactivity-java-corrige\/\">Lire la suite &#8250;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":188,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"jetpack_post_was_ever_published":false,"footnotes":""},"class_list":["post-203","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P9qu1A-3h","_links":{"self":[{"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/pages\/203","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/comments?post=203"}],"version-history":[{"count":4,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/pages\/203\/revisions"}],"predecessor-version":[{"id":205,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/pages\/203\/revisions\/205"}],"up":[{"embeddable":true,"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/pages\/188"}],"wp:attachment":[{"href":"https:\/\/chezdom.net\/etu\/wp-json\/wp\/v2\/media?parent=203"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}