{"id":12914,"date":"2018-07-10T18:51:04","date_gmt":"2018-07-10T16:51:04","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=12914"},"modified":"2018-07-10T18:51:04","modified_gmt":"2018-07-10T16:51:04","slug":"android-usare-connect-pattern","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/android-usare-connect-pattern\/","title":{"rendered":"Android: usare Connect Pattern"},"content":{"rendered":"<p>Quando si deve<strong> riservare l&#8217;accesso ad un contenuto<\/strong> in un&#8217;interfaccia Android si ricorre spesso a password e PIN che richiedono, d&#8217;altro canto, una certa pazienza da parte dell&#8217;utente per essere digitate. Un modo molto rapido per far ci\u00f2 \u00e8 usare i<strong> connect pattern<\/strong>, un percorso che collega pi\u00f9 punti visualizzati sul display semplicemente trascinando il dito: solo chi conosce il percorso corretto avr\u00e0 accesso all&#8217;uso dell&#8217;interfaccia.<\/p>\n<p>Esistono varie librerie che si occupano di questo e qui ne presentiamo una in particolare: <a href=\"https:\/\/github.com\/BCGDV-ASIA\/android-widget-connectpattern?utm_source=android-arsenal.com&amp;utm_medium=referral&amp;utm_campaign=3607\" target=\"_blank\" rel=\"noopener\">ConnectPatternView<\/a>.<\/p>\n<p><a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2017\/03\/android-connectpatternview-connect-pattern-for-activity.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12922\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2017\/03\/android-connectpatternview-connect-pattern-for-activity.jpg\" alt=\"\" width=\"687\" height=\"602\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2017\/03\/android-connectpatternview-connect-pattern-for-activity.jpg 687w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2017\/03\/android-connectpatternview-connect-pattern-for-activity-300x263.jpg 300w\" sizes=\"auto, (max-width: 687px) 100vw, 687px\" \/><\/a><\/p>\n<p>Una volta integratala via Gradle, apponenedo nel file file <strong>build.gradle<\/strong> la seguente direttiva:<\/p>\n<pre class=\"lang:java decode:true\">compile 'com.bcgdv.asia.lib:connectpattern:0.2.1'<\/pre>\n<p>lo si pu\u00f2 <strong>aggiungere al layout<\/strong> dell&#8217;Activity come una normale widget:<\/p>\n<pre class=\"lang:xhtml decode:true \">&lt;com.bcgdv.asia.lib.connectpattern.ConnectPatternView\r\n    android:id=\"@+id\/connect\"\r\n    android:padding=\"32dp\"\r\n    android:layout_width=\"350dp\"\r\n    android:layout_height=\"350dp\"\r\n    android:layout_centerVertical=\"true\"\r\n    android:layout_centerHorizontal=\"true\"\r\n    app:connectPatternAnimationType=\"none|middle|bottom\"\r\n    app:connectPatternNumber=\"nine\"\r\n    app:connectPatternCircleColor=\"@color\/colorPrimary\"\r\n    app:connectPatternLineColor=\"@color\/colorAccent\"\r\n    app:connectPatternCircleRadius=\"14dp\"\r\n    app:connectPatternLineWidth=\"7dp\"\r\n    app:connectPatternDrawable=\"@mipmap\/ic_star\"\/&gt;<\/pre>\n<p>per poi <strong>gestirne gli eventi dal lato Java<\/strong> con un <em>listener<\/em> ricco di metodi:<\/p>\n<pre class=\"lang:java decode:true \">view.setOnConnectPatternListener(new ConnectPatternView.OnConnectPatternListener() {\r\n        @Override\r\n        public void onPatternEntered(ArrayList&lt;Integer&gt; result) {\r\n        }\r\n\r\n        @Override\r\n        public void onPatternAbandoned() {\r\n        }\r\n\r\n        @Override\r\n        public void animateInStart() {\r\n        }\r\n\r\n        @Override\r\n        public void animateInEnd() {\r\n        }\r\n\r\n        @Override\r\n        public void animateOutStart() {\r\n        }\r\n\r\n        @Override\r\n        public void animateOutEnd() {\r\n        }\r\n    });<\/pre>\n<p>&nbsp;<\/p>\n<p>Si tratta di uno strumento molto comodo che permette di integrare la semplicit\u00e0 del connect pattern nella propria app Android.<\/p>\n<p>Avete mai provato librerie simili? Che ne pensate ?<\/p>\n<p>Commentate e fateci sapere!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quando si deve riservare l&#8217;accesso ad un contenuto in un&#8217;interfaccia Android si ricorre spesso a password e&#8230;<\/p>\n","protected":false},"author":561,"featured_media":13604,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[1278,1915,1569],"class_list":["post-12914","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorial-pratici","tag-android","tag-connect-pattern","tag-design-user-interface-android"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12914","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/561"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=12914"}],"version-history":[{"count":2,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12914\/revisions"}],"predecessor-version":[{"id":13605,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12914\/revisions\/13605"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/13604"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=12914"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=12914"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=12914"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}