{"id":3176,"date":"2017-06-20T15:57:27","date_gmt":"2017-06-20T10:27:27","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=3176"},"modified":"2017-06-20T15:57:27","modified_gmt":"2017-06-20T10:27:27","slug":"infinite-auto-scrolling-using-android-view-pager","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/infinite-auto-scrolling-using-android-view-pager\/","title":{"rendered":"Infinite Auto Scrolling using Android View Pager"},"content":{"rendered":"<p>Recently , I have implemented a concept of infinite scrolling in android. This is not much difficult task but it&#8217;s tricky . I have implemented it by View pager using Paging Adapter . \u00a0Anyone can do it by \u00a0view pager adapter like <span style=\"color: #0000ff;\"><a style=\"color: #0000ff;\" href=\"https:\/\/developer.android.com\/reference\/android\/support\/v4\/app\/FragmentStatePagerAdapter.html\" target=\"_blank\" rel=\"noopener\">FragmentStatePagerAdapter<\/a><\/span>. I have used one more thing which is <strong>View Pager Indicator .<\/strong><\/p>\n<h3 style=\"text-align: center;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<span style=\"text-decoration: underline; color: #333300;\">View Pager with Indicators<\/span><\/h3>\n<p>To implement it \u00a0, take android View Pager and \u00a0Frame Layout \u00a0for indicators in activity XML :<\/p>\n<pre class=\"lang:java decode:true\"> &lt; RelativeLayout\r\n android: layout_width = \"match_parent\"\r\n android: layout_height = \"0dp\"\r\n android: layout_weight = \"2\"\r\n android: background = \"@color\/colorWhite\" &gt;\r\n\r\n      &lt; android.support.v4.view.ViewPager\r\n         android: id = \"@+id\/viewPager\"\r\n         android: layout_width = \"match_parent\"\r\n         android: layout_height = \"match_parent\" \/&gt;\r\n   \r\n      \/\/ Indicator layout \r\n      &lt; FrameLayout\r\n         android: id = \"@+id\/pagesIndicator\"\r\n         android: layout_width = \"match_parent\"\r\n         android: layout_height = \"30dp\"\r\n         android: layout_alignParentBottom = \"true\"\r\n         android: layout_centerHorizontal = \"true\"\r\n         android: gravity = \"center\"\r\n         android: orientation = \"horizontal\" \/&gt;\r\n\r\n\r\n  &lt; \/RelativeLayout&gt;<\/pre>\n<p>In your Activity ,\u00a0prepare data for view pager and set a suitable adapter in it .You need to set your view pager in LoopingCirclePageIndicator .<\/p>\n<pre class=\"lang:java decode:true\">{\r\n    ViewPagerAdaptor viewPagerAdapter = new ViewPagerAdaptor();\r\n    \r\n     \/\/ View Initialization\r\n    \r\n     ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);\r\n     ViewGroup mFrameLayout = (ViewGroup) findViewById(R.id.pagesIndiactor);\r\n    \r\n     \/\/prepare data for view pager\r\n    \r\n     viewPager.setAdapter(viewPagerAdapter);\r\n    \r\n     \/\/ this class for indicators\r\n    \r\n     LoopingCirclePageIndicator circlePageIndicator = new LoopingCirclePageIndicator(this);\r\n     circlePageIndicator.setFillColor(getResources().getColor(R.color.colorPrimary, null));\r\n    \r\n     circlePageIndicator.setViewPager(viewPager);\r\n     mFrameLayout.addView(circlePageIndicator); \r\n }<\/pre>\n<p>Here , One new class is introduced which is <strong>LoopingCirclePageIndicator<\/strong> .This class is handling all the possible situations of view pager current page selection using one interface <strong>LoopingPagerAdapter<\/strong> .You can refer this code from these links :<\/p>\n<p>1.\u00a0<span style=\"color: #0000ff;\"><a style=\"color: #0000ff;\" href=\"https:\/\/github.com\/alphamu\/LoopingViewPagerDemo\/blob\/master\/viewpagerindicator\/src\/main\/java\/com\/viewpagerindicator\/LoopingCirclePageIndicator.java\" target=\"_blank\" rel=\"noopener\">LoopingCirclePageIndicator<\/a><\/span><\/p>\n<p>2. \u00a0<span style=\"color: #0000ff;\"><a style=\"color: #0000ff;\" href=\"https:\/\/github.com\/alphamu\/LoopingViewPagerDemo\/blob\/master\/viewpagerindicator\/src\/main\/java\/com\/viewpagerindicator\/LoopingPagerAdapter.java\" target=\"_blank\" rel=\"noopener\">LoopingPagerAdapter<\/a><\/span><\/p>\n<p>In general\u00a0, getCount() method of adapter returns object size but \u00a0in this case we are going to implement infinite scrolling , that&#8217;s why\u00a0\u00a0we will use <strong>INTEGER.MAX_VALUE<\/strong> in getCount() method . There is one more method \u00a0getRealCount() , which returns real size of your object for view pager indicators.<\/p>\n<p>Actually , we create a new page every time for infinite scrolling in adapter.<\/p>\n<pre class=\"lang:java decode:true \">private class ViewPagerAdaptor extends\r\n                               PagerAdapter implements  \r\n                               LoopingPagerAdapter\r\n {\r\n\r\n     private List &lt; String &gt; imageUrlList;\r\n     private ImageLoader imageLoader;\r\n    \r\n     ViewPagerAdaptor() \r\n     {\r\n         imageLoader = new ImageLoader(RenewUpgradeActivity.this, R.drawable.placeholder_image_user_media_large, false, AppContentConstant.CACHING_SIZE);\r\n     }\r\n    \r\n     void setImageUrlList(List &lt; String &gt; imageUrlList) \r\n     {\r\n       this.imageUrlList = imageUrlList;\r\n     }\r\n    \r\n    \r\n     public int getCount() \r\n     {\r\n       return Integer.MAX_VALUE;\r\n     }\r\n    \r\n    \r\n     @Override\r\n     public Object instantiateItem(ViewGroup container, int position) \r\n     {\r\n          View itemView = LayoutInflater.from(RenewUpgradeActivity.this).inflate(R.layout.layout_renew_upgrade_pager, container, false);\r\n          ImageView imageView = (ImageView) itemView.findViewById(R.id.imageViewCoupon);\r\n          String imageUrl = imageUrlList.get(index);\r\n          imageLoader.displayImage(imageUrl, imageView, true);\r\n          container.addView(itemView);\r\n        \r\n          return itemView;\r\n     }\r\n    \r\n     @Override\r\n     public boolean isViewFromObject(View view, Object object) \r\n     {\r\n         return view == object;\r\n     }\r\n    \r\n     @Override\r\n     public void destroyItem(ViewGroup container, int position, Object object) \r\n     {\r\n        container.removeView((LinearLayout) object);\r\n     }\r\n    \r\n     @Override\r\n     public Parcelable saveState() \r\n     {\r\n        return null;\r\n     }\r\n    \r\n     public int getRealCount() \r\n     {\r\n        return imageUrlList.size();\r\n     }\r\n}<\/pre>\n<h3 style=\"text-align: center;\"><span style=\"text-decoration: underline; color: #333300;\">Auto Scroll View Pager Implementation<\/span><\/h3>\n<p>Now let&#8217;s discuss most challenging functionality that I enjoyed exploring and implementing on my own \u00a0. Here is the code to do the same\u00a0after setting adapter in view pager.<\/p>\n<pre class=\"lang:java decode:true\">private int currentPage = 0; \r\n private void setupAutoPager()\r\n    {\r\n        final Handler handler = new Handler();\r\n\r\n        final Runnable update = new Runnable() {\r\n            public void run()\r\n            {\r\n\r\n             viewPager.setCurrentItem(currentPage, true);\r\n                if(currentPage == Integer.MAX_VALUE)\r\n                {\r\n                    currentPage = 0;\r\n                }\r\n                else\r\n                {\r\n                    ++currentPage ;\r\n                }\r\n            }\r\n        };\r\n\r\n\r\n        timer = new Timer();\r\n        timer.schedule(new TimerTask() {\r\n\r\n            @Override\r\n            public void run() {\r\n                handler.post(update);\r\n            }\r\n        }, 500, 2500);\r\n    }<\/pre>\n<p>&nbsp;<\/p>\n<p>All suggestions are welcome \ud83d\ude42 .<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently , I have implemented a concept of infinite scrolling in android. This is not much difficult task but it&#8217;s tricky . I have implemented it by View pager using Paging Adapter . \u00a0Anyone can do it by \u00a0view pager adapter like FragmentStatePagerAdapter. I have used one more thing which is View Pager Indicator . [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3247,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,71],"tags":[],"class_list":["post-3176","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","category-mobile"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Infinite Auto Scrolling using Android View Pager - InnovationM - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.innovationm.com\/blog\/infinite-auto-scrolling-using-android-view-pager\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Infinite Auto Scrolling using Android View Pager - InnovationM - Blog\" \/>\n<meta property=\"og:description\" content=\"Recently , I have implemented a concept of infinite scrolling in android. This is not much difficult task but it&#8217;s tricky . I have implemented it by View pager using Paging Adapter . \u00a0Anyone can do it by \u00a0view pager adapter like FragmentStatePagerAdapter. I have used one more thing which is View Pager Indicator . [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/infinite-auto-scrolling-using-android-view-pager\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2017-06-20T10:27:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/06\/Infinite-Auto-Scrolling-using-Android-View-Pager1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"612\" \/>\n\t<meta property=\"og:image:height\" content=\"488\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/infinite-auto-scrolling-using-android-view-pager\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/infinite-auto-scrolling-using-android-view-pager\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"Infinite Auto Scrolling using Android View Pager\",\"datePublished\":\"2017-06-20T10:27:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/infinite-auto-scrolling-using-android-view-pager\\\/\"},\"wordCount\":242,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/infinite-auto-scrolling-using-android-view-pager\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/06\\\/Infinite-Auto-Scrolling-using-Android-View-Pager1.png\",\"articleSection\":[\"Android\",\"Mobile\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/infinite-auto-scrolling-using-android-view-pager\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/infinite-auto-scrolling-using-android-view-pager\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/infinite-auto-scrolling-using-android-view-pager\\\/\",\"name\":\"Infinite Auto Scrolling using Android View Pager - InnovationM - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/infinite-auto-scrolling-using-android-view-pager\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/infinite-auto-scrolling-using-android-view-pager\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/06\\\/Infinite-Auto-Scrolling-using-Android-View-Pager1.png\",\"datePublished\":\"2017-06-20T10:27:27+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/infinite-auto-scrolling-using-android-view-pager\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/infinite-auto-scrolling-using-android-view-pager\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/infinite-auto-scrolling-using-android-view-pager\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/06\\\/Infinite-Auto-Scrolling-using-Android-View-Pager1.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/06\\\/Infinite-Auto-Scrolling-using-Android-View-Pager1.png\",\"width\":612,\"height\":488},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/infinite-auto-scrolling-using-android-view-pager\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Infinite Auto Scrolling using Android View Pager\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Infinite Auto Scrolling using Android View Pager - InnovationM - Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.innovationm.com\/blog\/infinite-auto-scrolling-using-android-view-pager\/","og_locale":"en_US","og_type":"article","og_title":"Infinite Auto Scrolling using Android View Pager - InnovationM - Blog","og_description":"Recently , I have implemented a concept of infinite scrolling in android. This is not much difficult task but it&#8217;s tricky . I have implemented it by View pager using Paging Adapter . \u00a0Anyone can do it by \u00a0view pager adapter like FragmentStatePagerAdapter. I have used one more thing which is View Pager Indicator . [&hellip;]","og_url":"https:\/\/www.innovationm.com\/blog\/infinite-auto-scrolling-using-android-view-pager\/","og_site_name":"InnovationM - Blog","article_published_time":"2017-06-20T10:27:27+00:00","og_image":[{"width":612,"height":488,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/06\/Infinite-Auto-Scrolling-using-Android-View-Pager1.png","type":"image\/png"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/infinite-auto-scrolling-using-android-view-pager\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/infinite-auto-scrolling-using-android-view-pager\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"Infinite Auto Scrolling using Android View Pager","datePublished":"2017-06-20T10:27:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/infinite-auto-scrolling-using-android-view-pager\/"},"wordCount":242,"commentCount":0,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/infinite-auto-scrolling-using-android-view-pager\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/06\/Infinite-Auto-Scrolling-using-Android-View-Pager1.png","articleSection":["Android","Mobile"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/infinite-auto-scrolling-using-android-view-pager\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/infinite-auto-scrolling-using-android-view-pager\/","url":"https:\/\/www.innovationm.com\/blog\/infinite-auto-scrolling-using-android-view-pager\/","name":"Infinite Auto Scrolling using Android View Pager - InnovationM - Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/infinite-auto-scrolling-using-android-view-pager\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/infinite-auto-scrolling-using-android-view-pager\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/06\/Infinite-Auto-Scrolling-using-Android-View-Pager1.png","datePublished":"2017-06-20T10:27:27+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/infinite-auto-scrolling-using-android-view-pager\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/infinite-auto-scrolling-using-android-view-pager\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/infinite-auto-scrolling-using-android-view-pager\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/06\/Infinite-Auto-Scrolling-using-Android-View-Pager1.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2017\/06\/Infinite-Auto-Scrolling-using-Android-View-Pager1.png","width":612,"height":488},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/infinite-auto-scrolling-using-android-view-pager\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Infinite Auto Scrolling using Android View Pager"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/3176","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=3176"}],"version-history":[{"count":0,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/3176\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/3247"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=3176"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=3176"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=3176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}