https://github.com/jumman04/jummania-slider
Jummania View Slider for Android
https://github.com/jumman04/jummania-slider
android imageslider java kotlin slider slider-plugin viewpager viewpager-indicator viewpager2 viewpagerindicator
Last synced: about 2 months ago
JSON representation
Jummania View Slider for Android
- Host: GitHub
- URL: https://github.com/jumman04/jummania-slider
- Owner: Jumman04
- License: mit
- Created: 2023-11-08T15:43:12.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-05-25T21:23:14.000Z (about 1 year ago)
- Last Synced: 2025-03-27T20:51:16.560Z (2 months ago)
- Topics: android, imageslider, java, kotlin, slider, slider-plugin, viewpager, viewpager-indicator, viewpager2, viewpagerindicator
- Language: Kotlin
- Homepage:
- Size: 2.53 MB
- Stars: 15
- Watchers: 1
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
Jummania View Slider for Android!
Just inflate your view and start sliding!
---
Setup
To integrate Jummania-Slider into your Android project, follow these steps:
### Step 1: Add JitPack Repository
Add the JitPack repository to your project's root `settings.gradle` file:
```groovy
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
maven { url = uri("https://jitpack.io") } //Add this line
}
}
```
## Step 2: Add the Dependency
Add the Jummania-Slider dependency to your app module's `build.gradle` file:
```gradle
dependencies {
implementation("com.github.Jumman04:Jummania-Slider:4.7")
}
```
---
Usage
---
XML
```xml
```
---
For Kotlin
```kt
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val jSlider: JSlider = findViewById(R.id.jSlider)
jSlider.setSlider(DefaultSlider())
}
//Out of onCreate, Create a Class for Slider
private inner class DefaultSlider : JSlider.DefaultSlider() {
override fun getView(layoutInflater: LayoutInflater, parent: ViewGroup): View {
return layoutInflater.inflate(R.layout.item_slider2, parent, false) //Inflate you layout
}
override fun onSliderCreate(view: View, position: Int) {
val textView: TextView = view.findViewById(R.id.text_view) //find your child
val imageView: ImageView = view.findViewById(R.id.image_view)
Picasso.get()
.load("https://jummania.com/App/BanglaNatokSamahar/Images/Cover%20Photo.jpg")
.error(R.drawable.default_error)
.placeholder(R.drawable.default_loading)
.into(imageView)
textView.text = getString(R.string.Developer_Name)
view.setOnClickListener {
//Apply your click Listener
}
}
override fun getCount(): Int {
return 3
}
}
```
---
For Java
```Java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
JSlider jSlider = findViewById(R.id.jSlider);
jSlider.setSlider(new DefaultSlider());
}
//Out of onCreate, Create a Class for Slider
private class DefaultSlider extends JSlider.DefaultSlider {
@Override
public View getView(LayoutInflater layoutInflater, ViewGroup parent) {
return layoutInflater.inflate(R.layout.item_slider2, parent, false);
}
@Override
public void onSliderCreate(View view, int position) {
TextView textView = view.findViewById(R.id.text_view);
ImageView imageView = view.findViewById(R.id.image_view);
Picasso.get()
.load("https://jummania.com/App/BanglaNatokSamahar/Images/Cover%20Photo.jpg")
.error(R.drawable.default_error)
.placeholder(R.drawable.default_loading)
.into(imageView);
textView.setText(getString(R.string.Developer_Name));
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Apply your click listener logic
}
});
}
@Override
public int getCount() {
return 3;
}
}
```
---
Customization
### The JSlider library provides a set of attributes that can be configured either in XML layout files or programmatically.
XML Attribute
Programmatic Attribute
Description
app:slidingDuration="integer"
setSlidingDuration(int)
Duration for transitioning between slides, default: 2222
app:indicatorSize="dimension"
setIndicatorSize(int)
Size of the indicator shape, default: 15
app:manualSlidable="true"
setManualSlidable(boolean)
Enables or disables manual swipe. default: true
setSliderPadding(int, int, int, int)
Padding for the JSlider component - Top, default: 0, 0, 0, 0
app:sliderPaddingTop="dimension"
Padding for the JSlider component - Top, default: 0
app:sliderPaddingLeft="dimension"
Padding for the JSlider component - Left, default: 0
app:sliderPaddingRight="dimension"
Padding for the JSlider component - Right, default: 0
app:sliderPaddingBottom="dimension"
Padding for the JSlider component - Bottom, default: 0
setIndicatorPadding(int, int, int, int)
Padding for the indicator shape, default: 0, 0, 0, 55
app:indicatorPaddingTop="dimension"
Padding for the indicator shape - Top, default: 0
app:indicatorPaddingLeft="dimension"
Padding for the indicator shape - Left, default: 0
app:indicatorPaddingRight="dimension"
Padding for the indicator shape - Right, default: 0
app:indicatorPaddingBottom="dimension"
Padding for the indicator shape - Bottom, default: 25dp
app:indicatorMarginHorizontal="dimension"
setIndicatorMarginHorizontal(int)
Horizontal margin between indicator shapes, default: 3
app:enableIndicator="boolean"
enableIndicator(boolean)
Enable or disable the indicator display, default: true
app:enableAutoSliding="boolean"
enableAutoSliding(boolean)
Enable or disable auto-sliding functionality, default: true
app:defaultIndicatorColor="color"
setDefaultIndicatorColor(int)
Color for the Default indicator shape, default: "#80ffffff"
app:selectedIndicatorColor="color"
setSelectedIndicatorColor(int)
Color for the selected indicator shape, default: Color.WHITE
app:indicatorUpdateMode="SYNC"
setIndicatorUpdateMode(updateType)
Indicator Update Modes: SYNC, STATIC, ANIMATED, default: UpdateTypes.SYNC
app:indicatorShapeTypes="CIRCLE"
setIndicatorShapeTypes(shapeType)
Indicator Shape Types: CIRCLE, HEART, SQUARE, STAR, ShapeTypes.CIRCLE
app:indicatorAlignment="ALIGN_BOTTOM"
setIndicatorAlignment(alignment)
Indicator Alignment Options: ALIGN_LEFT, ALIGN_TOP, ALIGN_RIGHT, ALIGN_BOTTOM, ALIGN_CENTER, CENTER_HORIZONTAL, CENTER_VERTICAL, ALIGN_START, ALIGN_END, Alignment.BOTTOM
app:indicatorGravity="center"
setIndicatorGravity(gravity)
Indicator Gravity Options, default: Gravity.CENTER
app:slideAnimation="DEFAULT"
jSlider.setSlideAnimation(animationType)
Slide Animation Types: ANTI_CLOCK_SPIN, BACKGROUND_TO_FOREGROUND, CARD_STACK, CLOCK_SPIN, CUBE_IN_DEPTH, CUBE_IN_ROTATION, CUBE_IN_SCALING, CUBE_OUT_DEPTH, CUBE_OUT_ROTATION, CUBE_OUT_SCALING, CUBE_IN, CUBE_OUT, DEPTH_SLIDE, DEPTH_SLIDE2, DEPTH_TRANSFORMATION, DEPTH_ZOOM_OUT, FADEOUT, FADE_PAGE, FAN_TRANSFORMATION, FIDGET_SPINNER, FLIP_HORIZONTAL, FLIP_VERTICAL, FOREGROUND_TO_BACKGROUND, GATE, HINGE, POP, ROTATE_DOWN, ROTATE_UP, SPINNER, SPINNER_TRANSFORMATION, TABLET_SLIDE, TOSS, VERTICAL_FLIP, VERTICAL_SHUT, ZOOM_FADE, ZOOM_IN, ZOOM_OUT, DEFAULT, default: AnimationTypes.DEFAULT
---
Event Listeners
### On Slide Change Listener
You can add an `OnSlideChangeListener` to listen for slide change events. This listener provides
callbacks for different slide events.
```kt
jSlider.addOnSlideChangeListener(object : JSlider.OnSlideChangeListener {
override fun onSliderScrolled(
position: Int, positionOffset: Float, positionOffsetPixels: Int) {
}
override fun onSliderSelected(position: Int) {
}
override fun onSliderScrollStateChanged(state: Int) {
}
})
```
---
Feature Requests
If you have a feature request or a suggestion for improving this library, please feel free
to [open an issue](https://github.com/Jumman04/Jummania-Slider/issues/new) and let us know! We
appreciate your feedback and are always looking to make our library better.
#### How to Request a Feature
1. Click on the [Issues tab](https://github.com/Jumman04/Jummania-Slider/issues).
2. Click the green "New Issue" button.
3. Fill in the requested information and submit the issue.
Thank you for helping us improve the library!
---
📄 License
This project is licensed under the MIT License - see
the [LICENSE.md](https://github.com/Jumman04/Jummania-Slider/blob/master/LICENSE.md) file for
details.
---