I stopped developing this library for a long time ago. I thought about revising it recently but there is already someone keeping it up. I recommend you to use it instead. Thank you all for your support.
https://github.com/addisonElliott/SegmentedButton
Segmented Button is a IOS-like "Segmented Control" with animation.
For more Android-like segmented control, check Radio Real Button.
Add it to your build.gradle with:
allprojects {
repositories {
maven { url "https://jitpack.io" }
}
}and:
dependencies {
compile 'com.github.ceryle:SegmentedButton:v2.0.2'
}| Option Name | Format | Description |
|---|---|---|
| app:sb_imageTint | color | Set tint onto button's image |
| app:sb_imageScale | float | Scale button's image |
| app:sb_selectedImageTint | color | Set tint onto button's image if selector on it |
| app:sb_selectedTextColor | color | Set color onto button's text if selector on it |
| app:sb_rippleColor | color | Set ripple color of button |
| Option Name | Format | Description |
|---|---|---|
| app:sbg_ripple | boolean | Set ripple color for every button |
| app:sbg_rippleColor | color | Set ripple color for every button with custom color |
| app:sbg_selectorImageTint | color | If selector on it, set tint onto image for every button |
| app:sbg_selectorTextColor | color | If selector on it, set text color for every button |
| app:sbg_selectorColor | color | Set selector color |
| app:sbg_dividerSize | dimension | Set divider size |
| app:sbg_dividerPadding | dimension | Set divider padding for top and bottom |
| app:sbg_dividerColor | color | Change divider color |
| app:sbg_dividerRadius | dimension | Round divider |
| app:sbg_shadow | boolean | Shadow for container layout (api21+) |
| app:sbg_shadowElevation | dimension | Shadow for container layout (api21+) |
| app:sbg_shadowMargin | dimension | Set margin to make shadow visible (api21+) |
| app:sbg_position | integer | Set selected button position |
| app:sbg_radius | dimension | Make layout rounder |
| app:sbg_backgroundColor | color | Set background color of container (except transparent color) |
| app:sbg_animateSelectorDuration | integer | Set how long selector travels to selected position |
| app:sbg_animateSelector | integer | Set selector animation (ex. bounce animation) |
| app:sbg_borderSize | dimension | Add border by giving dimension |
| app:sbg_borderColor | color | Change border color (Default: Grey) |
- fastOutSlowIn
- bounce
- linear
- decelerate
- cycle
- anticipate
- accelerateDecelerate
- accelerate
- anticipateOvershoot
- fastOutLinearIn
- linearOutSlowIn
- overshoot
These animations can be set using the attribute noted above like so: app:sbg_animateSelector="bounce". Also make sure to play with the app:sbg_animateSelectorDuration attribute to get the animation to look exactly how you want it.
<co.ceryle.segmentedbutton.SegmentedButtonGroup
android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="10dp"app:sbg_animateSelector="bounce"app:sbg_animateSelectorDuration="1000"app:sbg_backgroundColor="@color/white"app:sbg_dividerColor="@color/grey_500"app:sbg_dividerPadding="10dp"app:sbg_dividerRadius="10dp"app:sbg_dividerSize="1dp"app:sbg_position="1"app:sbg_radius="2dp"app:sbg_ripple="true"app:sbg_rippleColor="@color/grey_500"app:sbg_selectorColor="@color/grey_500"app:sbg_selectorTextColor="@color/white"app:sbg_shadow="true"app:sbg_shadowElevation="3dp"app:sbg_shadowMargin="4dp">
<Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:minHeight="10dp"android:text="Button 1"android:textAllCaps="false" />
<Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:minHeight="10dp"android:text="Button 2"android:textAllCaps="false" />
<Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:minHeight="10dp"android:text="Button 3"android:textAllCaps="false" />
</co.ceryle.segmentedbutton.SegmentedButtonGroup>SegmentedButtonGroupsegmentedButtonGroup = (SegmentedButtonGroup) findViewById(R.id.segmentedButtonGroup);
segmentedButtonGroup.setOnClickedButtonPosition(newSegmentedButtonGroup.OnClickedButtonPosition() {
@OverridepublicvoidonClickedButtonPosition(intposition) {
Toast.makeText(MainActivity.this, "Clicked: " + position, Toast.LENGTH_SHORT).show();
}
});
segmentedButtonGroup.setPosition(2, 0);This project is licensed under the Apache License Version 2.0 - see the LICENSE.md file for details








