This repository demonstrates how to create an image slider using the HorizontalPager component in Jetpack Compose with Kotlin. The image slider allows users to swipe through a series of images horizontally.
- Image Slider: Swipe through multiple images horizontally.
- Jetpack Compose: Built using Jetpack Compose for a modern, declarative UI.
- Kotlin: Fully implemented in Kotlin.
- Clone the repository:
git clone https://github.com/Bhavyansh03-tech/Material3_Buttons.git- Open the project in Android Studio.
- Build and run the app on your Android device or emulator.
import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.pager.HorizontalPager import androidx.compose.foundation.pager.PageSize import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.KeyboardArrowLeft import androidx.compose.material.icons.automirrored.filled.KeyboardArrowRight import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp import androidx.compose.runtime.Composable import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment import kotlinx.coroutines.launch @OptIn(ExperimentalFoundationApi::class) @Composable fun ImageSlider() { val photos = listOf( R.drawable.img1, R.drawable.img2, R.drawable.img3, R.drawable.img4, R.drawable.img5, ) val scope = rememberCoroutineScope() val pagerState = rememberPagerState(pageCount = { photos.size }) Box( modifier = Modifier.fillMaxSize() ) { HorizontalPager( state = pagerState, pageSize = PageSize.Fill, key = { photos[it] } ) { index -> Image( modifier = Modifier.fillMaxSize(), painter = painterResource(id = photos[index]), contentDescription = null, contentScale = ContentScale.Crop ) } } Box( modifier = Modifier .fillMaxSize() .offset(y = -(19).dp), contentAlignment = Alignment.BottomCenter ) { Box( modifier = Modifier .offset(y = -(19).dp) .fillMaxWidth(0.5f) .clip(RoundedCornerShape(100)) .background(MaterialTheme.colorScheme.background) .padding(8.dp) .wrapContentHeight() ) { IconButton( onClick = { scope.launch { pagerState.animateScrollToPage( pagerState.currentPage - 1 ) } }, modifier = Modifier.align(Alignment.CenterStart) ) { Icon( imageVector = Icons.AutoMirrored.Filled.KeyboardArrowLeft, contentDescription = "Go Back" ) } IconButton( onClick = { scope.launch { pagerState.animateScrollToPage( pagerState.currentPage + 1 ) } }, modifier = Modifier.align(Alignment.CenterEnd) ) { Icon( imageVector = Icons.AutoMirrored.Filled.KeyboardArrowRight, contentDescription = "Go Back" ) } } } }Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
1.> Fork the Project.
2.> Create your Feature Branch git checkout -b feature/AmazingFeature.
3.> Commit your Changes git commit -m 'Add some AmazingFeature'.
4.> Push to the Branch git push origin feature/AmazingFeature.
5.> Open a Pull Request
- Inspiration from various Android development tutorials and documentation.
For questions or feedback, please contact @Bhavyansh03-tech.

