{"id":868,"date":"2023-03-17T02:15:20","date_gmt":"2023-03-16T17:15:20","guid":{"rendered":"https:\/\/www.dogrow.net\/android\/?p=868"},"modified":"2023-03-17T02:24:47","modified_gmt":"2023-03-16T17:24:47","slug":"blog45","status":"publish","type":"post","link":"https:\/\/www.dogrow.net\/android\/blog45\/","title":{"rendered":"(45) \u30b9\u30ef\u30a4\u30d7\u3092\u691c\u51fa\u3059\u308b\u3002"},"content":{"rendered":"<h1 class=\"my_h\">1. \u3084\u308a\u305f\u3044\u3053\u3068<\/h1>\n<p>Android\u30a2\u30d7\u30ea\u3067<br \/>\n<span class=\"my_fc_deeppinkBBig\">\u5de6\u30b9\u30ef\u30a4\u30d7\u3001\u53f3\u30b9\u30ef\u30a4\u30d7<\/span><br \/>\n\u3092\u691c\u51fa\u3057\u305f\u3044\u3002<\/p>\n<h1 class=\"my_h\">2. \u3084\u3063\u3066\u307f\u308b<\/h1>\n<p>\u753b\u9762\u4e0a\u3092\u30b9\u30ef\u30a4\u30d7\u3057\u305f\u65b9\u5411\u3092\u8868\u793a\u3059\u308b\u3060\u3051\u306e\u7c21\u5358\u306a\u30a2\u30d7\u30ea\u3092\u4f5c\u3063\u305f\u3002<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.dogrow.net\/android\/wp-content\/uploads\/2023\/03\/Image4.jpg\" alt=\"\" \/><\/p>\n<h3 class=\"my_h\">(1) MainActivity.java #1 OnGestureListener interface\u3092\u5b9f\u88c5\u3059\u308b\u3002<\/h3>\n<pre class=\"brush: java; highlight: [1]; title: ; notranslate\" title=\"\">\r\npublic class MainActivity extends AppCompatActivity implements GestureDetector.OnGestureListener {\r\n    private GestureDetector mGestureDetector;\r\n\r\n    @Override\r\n    protected void onCreate(Bundle savedInstanceState) {\r\n        super.onCreate(savedInstanceState);\r\n        setContentView(R.layout.activity_main);\r\n        this.mGestureDetector = new GestureDetector(this, this);\r\n    }\r\n<\/pre>\n<h3 class=\"my_h\">(2) MainActivity.java #2 GestureDetector\u3092\u751f\u6210\u3059\u308b\u3002<\/h3>\n<pre class=\"brush: java; highlight: [2,8]; title: ; notranslate\" title=\"\">\r\npublic class MainActivity extends AppCompatActivity implements GestureDetector.OnGestureListener {\r\n    private GestureDetector mGestureDetector;\r\n\r\n    @Override\r\n    protected void onCreate(Bundle savedInstanceState) {\r\n        super.onCreate(savedInstanceState);\r\n        setContentView(R.layout.activity_main);\r\n        this.mGestureDetector = new GestureDetector(this, this);\r\n    }\r\n<\/pre>\n<h3 class=\"my_h\">(3) MainActivity.java #3 onTouchEvent\u3067 GestureDetector#onTouchEvent\u3092\u5b9f\u884c\u3059\u308b\u3002<\/h3>\n<pre class=\"brush: java; highlight: [3]; title: ; notranslate\" title=\"\">\r\n    @Override\r\n    public boolean onTouchEvent(MotionEvent event) {\r\n        return mGestureDetector.onTouchEvent(event);\r\n    }\r\n<\/pre>\n<h3 class=\"my_h\">(4) MainActivity.java #4 onFling\u3092 override\u3057\u3001\u30b9\u30ef\u30a4\u30d7\u691c\u51fa\u51e6\u7406\u3092\u5b9f\u88c5\u3059\u308b\u3002<\/h3>\n<pre class=\"brush: java; highlight: [11,12,13,14,15,16,17,18,19]; title: ; notranslate\" title=\"\">\r\n    @Override\r\n    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {\r\n        final int SWIPE_MAX_OFF_PATH = 100;\r\n        final int SWIPE_MIN_DISTANCE = 50;\r\n        final int SWIPE_THRESHOLD_VELOCITY = 50;\r\n        \/\/ e1 : swipe\u958b\u59cb\u6642\r\n        \/\/ e2 : swipe\u7d42\u4e86\u6642\r\n        if (Math.abs(e1.getY() - e2.getY()) &gt; SWIPE_MAX_OFF_PATH) {\r\n            return false;\r\n        }\r\n        if (e1.getX() - e2.getX() &gt; SWIPE_MIN_DISTANCE &amp;&amp; Math.abs(velocityX) &gt; SWIPE_THRESHOLD_VELOCITY) {\r\n            \/\/ \u753b\u9762\u304c\u5de6\u306b\u30b9\u30ef\u30a4\u30d7\u3055\u308c\u305f\u6642\u306e\u51e6\u7406\r\n            this.tv.setText(&quot;\u2190 LEFT&quot;);\r\n            return true;\r\n        } else if (e2.getX() - e1.getX() &gt; SWIPE_MIN_DISTANCE &amp;&amp; Math.abs(velocityX) &gt; SWIPE_THRESHOLD_VELOCITY) {\r\n            \/\/ \u753b\u9762\u304c\u53f3\u306b\u30b9\u30ef\u30a4\u30d7\u3055\u308c\u305f\u6642\u306e\u51e6\u7406\r\n            this.tv.setText(&quot;\u2192 RIGHT&quot;);\r\n            return true;\r\n        }\r\n        return false;\r\n    }\r\n<\/pre>\n<h3 class=\"my_h\">(5) MainActivity.java #5 \u4ed6\u306e override\u304c\u5fc5\u8981\u306a\u30e1\u30bd\u30c3\u30c9\u3092\u66f8\u304f\u3002<\/h3>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\n    @Override\r\n    public boolean onDown(MotionEvent e) {\r\n        return false;\r\n    }\r\n    @Override\r\n    public void onShowPress(MotionEvent e) {\r\n    }\r\n    @Override\r\n    public boolean onSingleTapUp(MotionEvent e) {\r\n        return false;\r\n    }\r\n    @Override\r\n    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {\r\n        return false;\r\n    }\r\n    @Override\r\n    public void onLongPress(MotionEvent e) {\r\n    }\r\n<\/pre>\n<h1 class=\"my_h\">3. \u4ed8\u9332 : \u52d5\u4f5c\u78ba\u8a8d\u6e08\u307f\u306e\u5168\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9<\/h1>\n<pre class=\"brush: java; title: ; notranslate\" title=\"\">\r\npackage com.example.testswipe;\r\n\r\nimport androidx.appcompat.app.AppCompatActivity;\r\n\r\nimport android.os.Bundle;\r\nimport android.view.GestureDetector;\r\nimport android.view.MotionEvent;\r\nimport android.widget.TextView;\r\n\r\npublic class MainActivity extends AppCompatActivity implements GestureDetector.OnGestureListener {\r\n    private TextView tv;\r\n    private GestureDetector mGestureDetector;\r\n\r\n    @Override\r\n    protected void onCreate(Bundle savedInstanceState) {\r\n        super.onCreate(savedInstanceState);\r\n        setContentView(R.layout.activity_main);\r\n\r\n        this.tv = findViewById(R.id.tv_disp);\r\n        this.mGestureDetector = new GestureDetector(this, this);\r\n    }\r\n\r\n    @Override\r\n    public boolean onTouchEvent(MotionEvent event) {\r\n        this.tv.setText(&quot;&quot;);\r\n        return mGestureDetector.onTouchEvent(event);\r\n    }\r\n\r\n    @Override\r\n    public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {\r\n        final int SWIPE_MAX_OFF_PATH = 100;\r\n        final int SWIPE_MIN_DISTANCE = 50;\r\n        final int SWIPE_THRESHOLD_VELOCITY = 50;\r\n        \/\/ e1 : swipe\u958b\u59cb\u6642\r\n        \/\/ e2 : swipe\u7d42\u4e86\u6642\r\n        if (Math.abs(e1.getY() - e2.getY()) &gt; SWIPE_MAX_OFF_PATH) {\r\n            return false;\r\n        }\r\n        if (e1.getX() - e2.getX() &gt; SWIPE_MIN_DISTANCE &amp;&amp; Math.abs(velocityX) &gt; SWIPE_THRESHOLD_VELOCITY) {\r\n            \/\/ \u753b\u9762\u304c\u5de6\u306b\u30b9\u30ef\u30a4\u30d7\u3055\u308c\u305f\u6642\u306e\u51e6\u7406\r\n            this.tv.setText(&quot;\u2190 LEFT&quot;);\r\n            return true;\r\n        } else if (e2.getX() - e1.getX() &gt; SWIPE_MIN_DISTANCE &amp;&amp; Math.abs(velocityX) &gt; SWIPE_THRESHOLD_VELOCITY) {\r\n            \/\/ \u753b\u9762\u304c\u53f3\u306b\u30b9\u30ef\u30a4\u30d7\u3055\u308c\u305f\u6642\u306e\u51e6\u7406\r\n            this.tv.setText(&quot;\u2192 RIGHT&quot;);\r\n            return true;\r\n        }\r\n        return false;\r\n    }\r\n\r\n    \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\r\n    \/\/ \u4ee5\u4e0b\u3001\u4f7f\u7528\u3057\u306a\u3044\u304c\u3001OnGestureListener interface\u306e\u5b9f\u88c5\u6642\u306b override\u304c\u5fc5\u8981\u306a\u30e1\u30bd\u30c3\u30c9\r\n    @Override\r\n    public boolean onDown(MotionEvent e) {\r\n        return false;\r\n    }\r\n    @Override\r\n    public void onShowPress(MotionEvent e) {\r\n    }\r\n    @Override\r\n    public boolean onSingleTapUp(MotionEvent e) {\r\n        return false;\r\n    }\r\n    @Override\r\n    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {\r\n        return false;\r\n    }\r\n    @Override\r\n    public void onLongPress(MotionEvent e) {\r\n    }\r\n }\r\n<\/pre>\n<hr class=\"my_hr_bottom\">\n","protected":false},"excerpt":{"rendered":"<p>1. \u3084\u308a\u305f\u3044\u3053\u3068 Android\u30a2\u30d7\u30ea\u3067 \u5de6\u30b9\u30ef\u30a4\u30d7\u3001\u53f3\u30b9\u30ef\u30a4\u30d7 \u3092\u691c\u51fa\u3057\u305f\u3044\u3002 2. \u3084\u3063\u3066\u307f\u308b \u753b\u9762\u4e0a\u3092\u30b9\u30ef\u30a4\u30d7\u3057\u305f\u65b9\u5411\u3092\u8868\u793a\u3059\u308b\u3060\u3051\u306e\u7c21\u5358\u306a\u30a2\u30d7\u30ea\u3092\u4f5c\u3063\u305f\u3002 (1) MainActivity.java #1 On\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.dogrow.net\/android\/blog45\/\">\u7d9a\u304d\u3092\u8aad\u3080 &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-868","post","type-post","status-publish","format-standard","hentry","category-androidstudio"],"views":943,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/posts\/868","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/comments?post=868"}],"version-history":[{"count":5,"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/posts\/868\/revisions"}],"predecessor-version":[{"id":874,"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/posts\/868\/revisions\/874"}],"wp:attachment":[{"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/media?parent=868"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/categories?post=868"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dogrow.net\/android\/wp-json\/wp\/v2\/tags?post=868"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}