From 57189931d587d1af1aa0481244368478d032ae4e Mon Sep 17 00:00:00 2001 From: mina Date: Sun, 5 Apr 2020 21:15:24 +0200 Subject: [PATCH] add dotas background attrs --- .idea/codeStyles/Project.xml | 3 + .../res/drawable/shape_dots_background.xml | 6 ++ app/src/main/res/layout/activity_main.xml | 64 ++++++++++--------- .../com/denzcoskun/imageslider/ImageSlider.kt | 13 +++- .../res/drawable/default_dots_background.xml | 6 ++ .../src/main/res/layout/image_slider.xml | 6 +- imageslider/src/main/res/values/attrs.xml | 3 + 7 files changed, 68 insertions(+), 33 deletions(-) create mode 100644 app/src/main/res/drawable/shape_dots_background.xml create mode 100644 imageslider/src/main/res/drawable/default_dots_background.xml diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index ce889bd..a88ded0 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -1,5 +1,8 @@ + + diff --git a/app/src/main/res/drawable/shape_dots_background.xml b/app/src/main/res/drawable/shape_dots_background.xml new file mode 100644 index 0000000..df3ca7b --- /dev/null +++ b/app/src/main/res/drawable/shape_dots_background.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 3c0c89f..2eff11e 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,40 +1,46 @@ + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="#505050" + android:orientation="vertical" + android:padding="10dp" + tools:context=".MainActivity"> + android:id="@+id/image_slider" + android:layout_width="wrap_content" + android:layout_height="300dp" + app:auto_cycle="true" + app:corner_radius="20" + app:delay="0" + app:dots_background="@drawable/shape_dots_background" + app:error_image="@drawable/error" + app:period="1000" + app:dots_background_padding="8dp" + app:selected_dot="@drawable/default_selected_dot" + app:show_dots_background="true" + app:unselected_dot="@drawable/default_unselected_dot" /> - - - + + + + \ No newline at end of file diff --git a/imageslider/src/main/java/com/denzcoskun/imageslider/ImageSlider.kt b/imageslider/src/main/java/com/denzcoskun/imageslider/ImageSlider.kt index c21dc57..f292481 100644 --- a/imageslider/src/main/java/com/denzcoskun/imageslider/ImageSlider.kt +++ b/imageslider/src/main/java/com/denzcoskun/imageslider/ImageSlider.kt @@ -34,6 +34,9 @@ class ImageSlider @JvmOverloads constructor(context: Context, attrs: AttributeSe private var selectedDot = 0 private var unselectedDot = 0 + private var dotsBackground = 0 + private var dotsBackgroundPadding = 0 + private var showDotsBackground = false private var errorImage = 0 private var placeholder = 0 private var swipeTimer = Timer() @@ -53,6 +56,9 @@ class ImageSlider @JvmOverloads constructor(context: Context, attrs: AttributeSe errorImage = typedArray.getResourceId(R.styleable.ImageSlider_error_image, R.drawable.error) selectedDot = typedArray.getResourceId(R.styleable.ImageSlider_selected_dot, R.drawable.default_selected_dot) unselectedDot = typedArray.getResourceId(R.styleable.ImageSlider_unselected_dot, R.drawable.default_unselected_dot) + dotsBackground = typedArray.getResourceId(R.styleable.ImageSlider_dots_background, R.drawable.default_dots_background) + showDotsBackground = typedArray.getBoolean(R.styleable.ImageSlider_show_dots_background, false) + dotsBackgroundPadding = typedArray.getDimension(R.styleable.ImageSlider_dots_background_padding, 0f).toInt() } @@ -83,7 +89,6 @@ class ImageSlider @JvmOverloads constructor(context: Context, attrs: AttributeSe pagerDots!!.addView(dots!![i], params) } dots!![0]!!.setImageDrawable(ContextCompat.getDrawable(context, selectedDot)) - viewPager!!.addOnPageChangeListener(object : ViewPager.OnPageChangeListener { override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {} @@ -97,6 +102,12 @@ class ImageSlider @JvmOverloads constructor(context: Context, attrs: AttributeSe override fun onPageScrollStateChanged(state: Int) {} }) + + + if(showDotsBackground){ + pagerDots?.setBackgroundResource(dotsBackground) + pagerDots?.setPadding(dotsBackgroundPadding,dotsBackgroundPadding,dotsBackgroundPadding,dotsBackgroundPadding) + } } fun startSliding(changeablePeriod: Long = period) { diff --git a/imageslider/src/main/res/drawable/default_dots_background.xml b/imageslider/src/main/res/drawable/default_dots_background.xml new file mode 100644 index 0000000..7939831 --- /dev/null +++ b/imageslider/src/main/res/drawable/default_dots_background.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/imageslider/src/main/res/layout/image_slider.xml b/imageslider/src/main/res/layout/image_slider.xml index d563ab3..d803f47 100644 --- a/imageslider/src/main/res/layout/image_slider.xml +++ b/imageslider/src/main/res/layout/image_slider.xml @@ -9,11 +9,11 @@ + android:layout_marginBottom="10dp" /> \ No newline at end of file diff --git a/imageslider/src/main/res/values/attrs.xml b/imageslider/src/main/res/values/attrs.xml index fbc77c1..1128e77 100644 --- a/imageslider/src/main/res/values/attrs.xml +++ b/imageslider/src/main/res/values/attrs.xml @@ -5,9 +5,12 @@ + + + \ No newline at end of file