Индикатор вью расширяет компонент и реализует индикатор
@since 2021-08-10
*/
public class IndicatorView extends Component implements Indicator {
public IndicatorView(Context context) {
super(context);
}
public IndicatorView(Context context, AttrSet attrSet) {
super(context, attrSet);
}
public IndicatorView(Context context, AttrSet attrSet, String styleName) {
super(context, attrSet, styleName);
}
@Override
public void initIndicatorCount(int pagerCount) {
this.pagerCount = pagerCount;
setVisibility(pagerCount > 1 ? VISIBLE : GONE);
requestLayout();
}
@Override
public Component getView() {
return this;
}
@Override
public DependentLayout.LayoutConfig getParams() {
if (params == null) {
params = new DependentLayout.LayoutConfig(ComponentContainer.LayoutConfig.MATCH_CONTENT, NUM_100);
params.addRule(DependentLayout.LayoutConfig.ALIGN_PARENT_BOTTOM);
params.setMarginTop(NUM_30);
}
return params;
}
@Override
public void setAutoStau(Boolean isAuto) {
}
@Override
public void onPageSliding(int i, float v, int i1) {
selectedPage = position;
offset = positionOffset;
invalidate();
}
@Override
public void onPageSlideStateChanged(int i) {
}
@Override
public void onPageChosen(int i) {
}
}
Интерфейс баннера
//установка пользовательской анимации
Banner setPageTransformer(boolean reverseDrawingOrder, BannerViewPager.PageTransformer transformer)
//установка баннера для прослушивания скольжения по внешней странице
Banner setOuterPageChangeListener(PageSlider.PageChangedListener outerPageChangeListener)
//установить время автоматического поворота
Banner setAutoTurningTime(int autoTurningTime)
//установить, будет ли баннер автоматически поворачиваться, и он может поворачиваться более чем на одну страницу
Banner setAutoPlay(boolean autoPlay)
//установить индикатор
Banner setIndicator(Indicator indicator)
//установить индикатор
Banner setIndicator(Indicator indicator, boolean attachToRoot)
//определить, является ли поворот бесконечным
boolean isAutoPlay()
//получить текущую позицию
int getCurrentPager()
//начать поворот
void startTurning()
//остановить поворот
void stopTurning()
//установить один экран с несколькими страницами
Banner setPageMargin(int magin, int padding)
//установить направление скольжения
Banner setOrientation(int orientation)
//установить продолжительность переключения
Banner setPagerScrollDuration(int pagerScrollDuration)
Использование интерфейса IndicatorView
// установить радиус точки
IndicatorView setIndicatorRadius(float indicatorRadius)
//установить стиль анимации точки
IndicatorView setIndicatorStyle(int indicatorStyle)
//установить цвет точки по умолчанию
IndicatorView setIndicatorColor(Color indicatorColor)
//установить выбранный цвет точки
IndicatorView setIndicatorSelectorColor(Color indicatorSelectorColor)
//установить коэффициент индикатора, растянуть круг в прямоугольник, чем больше значение, тем длиннее растяжение, по умолчанию 1.0
IndicatorView setIndicatorRatio(float indicatorRatio)
//установить радиус выбранной точки, по умолчанию равен радиусу индикатора, можно установить размер выбранной точки отдельно
IndicatorView setIndicatorSelectedRadius(float indicatorSelectedRadius)
//установить соотношение выбранных точек, контролировать это соотношение, по умолчанию оно равно соотношению индикатора, значение по умолчанию равно 1.0
IndicatorView setIndicatorSelectedRatio(float indicatorSelectedRatio)
Различия в вызовах
CodeCheck — код протестирован без исключений.
CloudTest — код протестирован без исключений.
Вирусное сканирование прошло успешно.
Текущая версия demo функционально практически не отличается от исходного компонента.
0.0.1-SNAPSHOT
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )