如何设置CircleIndicator3指示器图标大小?选中未选中图标尺寸不等求助
解决CircleIndicator3选中与未选中指示器尺寸不一致问题
你可以通过以下两种方式解决这个问题:
1. 统一自定义Drawable的尺寸
确保你使用的ic_indicator和ic_indicator_unselected两个Drawable的尺寸完全一致。如果是Shape类型的Drawable,直接在代码里固定宽高:
比如ic_indicator.xml(选中状态):
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#your_selected_color"/> <size android:width="8dp" android:height="8dp"/> </shape>
ic_indicator_unselected.xml(未选中状态):
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#your_unselected_color"/> <size android:width="8dp" android:height="8dp"/> </shape>
如果是Vector Drawable,要保证两个图标的viewportWidth、viewportHeight以及android:width、android:height参数完全相同。
2. 强制CircleIndicator3缩放Drawable到指定尺寸
在CircleIndicator3的布局代码中添加app:ci_scale_type="fitXY"属性,强制让所有指示器Drawable缩放到你设置的ci_width和ci_height尺寸,忽略Drawable本身的原始大小:
修改后的布局代码:
<me.relex.circleindicator.CircleIndicator3 android:layout_width="match_parent" android:layout_height="30dp" android:layout_gravity="center" app:ci_drawable="@drawable/ic_indicator" app:ci_drawable_unselected="@drawable/ic_indicator_unselected" app:ci_width="8dp" app:ci_height="8dp" app:ci_margin="8dp" app:ci_scale_type="fitXY"/>
一般同时使用这两种方法就能彻底解决尺寸不一致的问题。
内容的提问来源于stack exchange,提问作者peterKay
相关产品推荐
相关产品推荐

