效果圖
屬性說明
<declare-styleable name="FontResizeView"> <attr name="minSize" format="reference|dimension" /> <!--最小size--> <attr name="maxSize" format="reference|dimension" /> <!--最大size--> <attr name="totalGrade" format="integer" /> <!--可調整的等級、即總的等級--> <attr name="standardGrade" format="integer" /> <!--标準等級--> <attr name="leftText" format="reference|string" /> <!--左邊文本,默認為 'A'--> <attr name="middleText" format="reference|string" /> <!--中間文本,默認為 '标準'--> <attr name="rightText" format="reference|string" /> <!--右邊文本,默認為 'A'--> <attr name="leftTextColor" format="reference|color" /> <!--左邊文本顔色,默認為全黑--> <attr name="middleTextColor" format="reference|color" /> <!--中間文本顔色,默認為全黑--> <attr name="rightTextColor" format="reference|color" /> <!--右邊文本顔色,默認為全黑--> <attr name="sliderRadius" format="reference|dimension" /> <!--滑塊半徑--> <attr name="sliderColor" format="reference|color" /> <!--滑塊顔色--> <attr name="sliderShadowColor" format="reference|color" /> <!--滑塊邊緣陰影顔色--> <attr name="lineColor" format="reference|color" /> <!--線條顔色--> <attr name="lineStrokeWidth" format="reference|dimension" /> <!--線條寬度,即粗細程度--> <attr name="horizontalLineLength" format="reference|dimension" /> <!--橫向線條長度--> <attr name="verticalLineLength" format="reference|dimension" /> <!--縱向線條長度--> </declare-styleable>
xml配置
<com.ljx.view.FontResizeView android:id="@ id/font_resize_view" android:layout_width="match_parent" android:layout_height="140dp" android:background="@android:color/white" app:maxSize="25sp" app:minSize="13sp" app:sliderColor="@android:color/white" app:sliderRadius="12dp" app:standardGrade="2" app:totalGrade="7" />
設置回調
FontResizeView fontResizeView = findViewById(R.id.font_resize_view); fontResizeView.setOnFontChangeListener(new OnFontChangeListener() { @Override public void onFontChange(float fontSize) { //字體size改變回調 單位:sp } });
這樣配置過後,代碼跑起來效果就跟上面的 gif 動圖一樣
我們把所有屬性都加上,看看效果
<com.ljx.view.FontResizeView android:id="@ id/font_resize_view" android:layout_width="match_parent" android:layout_height="140dp" android:background="@android:color/white" app:horizontalLineLength="300dp" app:leftText="AA" app:leftTextColor="#FF0000" app:lineColor="#009999" app:lineStrokeWidth="2dp" app:maxSize="31sp" app:minSize="15sp" app:middleText="标準1" app:middleTextColor="#00FF00" app:rightText="AAA" app:rightTextColor="#0000FF" app:sliderColor="@android:color/white" app:sliderRadius="13dp" app:sliderShadowColor="#FF0000" app:standardGrade="3" app:totalGrade="9" app:verticalLineLength="15dp" />
效果如下
相信以上屬性已經能滿足大部分場景,如果不能滿足您的場景,請提出您的需求,我會第一時間回應您。
創作不易喜歡的話記得點擊 關注哦
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!