Android自定義View——投票進度條
阿新 • • 發佈:2019-01-23
效果展示
功能屬性介紹
<!-- MatchSupportProgressBar -->
<declare-styleable name="MatchSupportProgressBar">
<!-- 進度條圓角角度 -->
<attr name="progress_radio" format="string"></attr>
<!-- 進度條左側Tag文字 -->
<attr name="progress_tag_text" format="string"></attr>
<!-- 進度條已填充部分顏色 -->
<attr name="progress_reach_color" format="color"></attr>
<!-- 進度條已填充部分高度 -->
<attr name="progress_reach_height" format="dimension"></attr>
<!-- 進度條背景顏色 -->
<attr name="progress_background_color" format="color"></attr>
<!-- 進度條背景高度 -->
<attr name="progress_background_height" format="dimension"></attr>
<!-- 進度條左側Tag文字顏色 -->
<attr name="progress_tag_text_color" format="color"></attr>
<!-- 進度條左側Tag文字尺寸 -->
<attr name="progress_tag_text_size" format="dimension"></attr>
<!-- 進度條右側百分比文字顏色 -->
<attr name="progress_percent_text_color" format="color"></attr>
<!-- 進度條右側百分比文字尺寸 -->
<attr name="progress_percent_text_size" format="dimension"></attr>
<!-- 進度條右側百分比文字 -->
<attr name="progress_percent_text" format="string"></attr>
<!-- 進度條選中的圖示與進度條、文字的間距 -->
<attr name="progress_offsetX" format="dimension"></attr>
<!-- 進度條右側文字的水平偏移量 -->
<attr name="progress_offsetR" format="dimension"></attr>
<!-- 進度條之間的偏移量 -->
<attr name="progress_LineSpacing" format="dimension"></attr>
</declare-styleable>
xml使用示例
<com.yjyc.supportprogress.view.MatchSupportProgressBar
android:id="@+id/progressbar_match_support"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:paddingLeft="3dp"
android:paddingRight="3dp"
android:progress="30"
yjcp:progress_background_color="#333"
yjcp:progress_background_height="30dp"
yjcp:progress_offsetR="20dp"
yjcp:progress_percent_text_color="#345698"
yjcp:progress_percent_text_size="13sp"
yjcp:progress_reach_color="#999"
yjcp:progress_tag_text_color="#ffffff"
yjcp:progress_tag_text="杰倫;那英;汪峰"
yjcp:progress_tag_text_size="13sp" />
java使用示例
//進度條的點選事件監聽
mspb.setOnRightTextClickListener(new OnRightTextClickListener() {
@Override
public void onClick(int position) {
//position是點選的位置
}
});
/*
為進度條賦值:
引數1:是我們算好的進度值,一般由伺服器返回。(注: yjcp:progress_tag_text="杰倫;那英;汪峰"設定 了幾個字串,getPercentList就要傳幾個字串)
引數2:得到一個boolean型別的集合,用於設定進度條√顯示的位置
引數3:true表示已投票,false表示未投票
引數4:是否開啟動畫特效
*/
mspb.setPercentState(getPercentList("10","90","100"), getCheckList(position), true, true);
//重置進度條狀態,如果在listview中涉及到複用問題條用它即可。
//引數:true投過票,false未投過
mspb.setState(false);