You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 19:31:02