2016-07-09 3 views

답변

0

나는 시도하지만 didnt는 작동해야합니다. stroke_colors attr을 아래 그림과 같이 변경하여 위 이미지에서와 같이 적절한 색상을 지정하십시오. 1 개 세그먼트 max_val 의미하므로 7 개 색 세그먼트가/7

<FrameLayout 
    android:layout_width="260dp" 
    android:layout_height="162dp" 
    android:background="#354051"> 

    <com.sccomponents.widgets.ScArcGauge 
     android:id="@+id/gauge" 
     xmlns:sc="http://schemas.android.com/apk/res-auto" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:padding="30dp" 
     sc:scc_angle_start="-180" 
     sc:scc_angle_sweep="180" 
     sc:scc_stroke_colors="#F7AD36|#8BBE28|#8BBE28|#F7AD36|#F7AD36|#EC4949|#EC4949" 
     sc:scc_stroke_colors_mode="solid" 
     sc:scc_stroke_size="30dp"/> 

    <ImageView 
     android:id="@+id/indicator" 
     android:layout_width="64dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom|center_horizontal" 
     android:layout_marginBottom="29dp" 
     android:layout_marginLeft="18dp" 
     android:src="@drawable/indicator"/> 

</FrameLayout> 
float angle0 = 0; 
float angle1 = gauge.percentageToAngle(max_val/7); 
float angle2 = gauge.percentageToAngle(max_val/7*3); 
float angle3 = gauge.percentageToAngle(max_val/7*5); 
float angle4 = gauge.percentageToAngle(max_val); 

float angle; 

if(cur_val >= 0 && cur_val < max_val/7) 
    angle = angle0; 
else if(cur_val >= max_val/7 && cur_val < max_val/7*3) 
    angle = angle1; 
else if(cur_val >= max_val/7*3 && cur_val < max_val/7*5) 
    angle = angle2; 
else if(cur_val >= max_val/7*5 && cur_val < max_val) 
    angle = angle3; 
else 
    angle = angle4; 


indicator.setRotation(angle); 
관련 문제