Android 카운트다운 컨트롤 Countdown View 의 인 스 턴 스 코드 상세 설명

사용자 정의 카운트다운 컨트롤 을 간소화 하고 Canvas.drawArc()로 그립 니 다.풀 스크린 페이지 의 링 을 사용 하여 스 캔 한 진도 바 효 과 를 실현 하 였 습 니 다.
코드 참조https://github.com/hanjx-dut/CountDownView
쓰다

allprojects {
 repositories {
  ...
  maven { url 'https://jitpack.io' }
 }
}

dependencies {
 implementation 'com.github.hanjx-dut:CountDownView:1.1'
}
실현 적 효과
효과 도

대응 하 는 view:

 <com.hanjx.ui.CountDownView
  android:id="@+id/count_down_1"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center_horizontal"
  app:auto_start="true"
  app:text_mode="time_variant"
  app:duration="3000"
  app:paint_stroke="3dp"/>

 <com.hanjx.ui.CountDownView
  android:id="@+id/count_down_2"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center_horizontal"
  app:finished_color="#000000"
  app:auto_start="true"
  app:start_angle="90"
  app:text_mode="time_variant"
  app:duration="3000"
  app:paint_stroke="3dp"/>

 <com.hanjx.ui.CountDownView
  android:id="@+id/count_down_3"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center_horizontal"
  app:finished_color="#FF0000"
  app:unfinished_color="#00FF00"
  app:auto_start="true"
  app:duration="2000"
  app:refresh_interval="quick"
  app:text="  "
  app:text_size="12sp"
  app:text_color="#FF0000"
  app:text_mode="fixed"
  app:paint_stroke="2dp"/>

 <com.hanjx.ui.CountDownView
  android:id="@+id/count_down_4"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center_horizontal"
  app:auto_start="true"
  app:text_mode="fixed"
  app:clockwise="false"
  app:text=""
  app:duration="2000"
  app:paint_stroke="3dp"/>

 <com.hanjx.ui.CountDownView
  android:id="@+id/count_down_5"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center_horizontal"
  app:text_mode="time_variant"
  app:duration="5000"
  app:paint_stroke="1.5dp"/>
모든 속성:

<declare-styleable name="CountDownView">
  <attr name="duration" format="integer"/> <!--     -->
  <attr name="refresh_interval"> <!--      ms -->
   <enum name="normal" value="16"/>
   <enum name="quick" value="11"/>
   <enum name="slow" value="20"/>
  </attr>
  <attr name="paint_stroke" format="dimension"/> <!--      -->
  <attr name="finished_color" format="color"/> <!--         -->
  <attr name="unfinished_color" format="color"/> <!--        -->
  <attr name="start_angle" format="float"/> <!--         -90     -->
  <attr name="clockwise" format="boolean"/> <!--        true -->
  <attr name="auto_start" format="boolean"/> <!--         false -->

  <!--    -->
  <attr name="text" format="string"/> <!--      -->
  <attr name="text_mode"> <!--         /      (  )-->
   <enum name="fixed" value="0"/>
   <enum name="time_variant" value="1"/>
  </attr>
  <attr name="text_size" format="dimension"/> <!--      -->
  <attr name="text_color" format="color"/> <!--      -->
 </declare-styleable>
텍스트 부분 에 더 많은 사용자 정의 속성 을 제공 하지 않 았 습 니 다.4.567914.붓 과 문 자 를 사용자 정의 할 수 있 습 니 다.예 를 들 어 demo 의 다섯 번 째:

CountDownView countDownView = findViewById(R.id.count_down_5);
countDownView.setTextDrawer(new CountDownView.TextDrawer() {
 @Override
 public void setTextPaint(Paint paint, long leftTime, int textMode) {
  if (leftTime < 2000) {
   paint.setTextSize(SizeUtils.sp2px(12));
  }
  paint.setTypeface(Typeface.DEFAULT_BOLD);
  paint.setColor(0xFFFF802E);
 }

 @Override
 public String getText(long leftTime, int mode, String originText) {
  if (leftTime < 2000) {
   return "  ";
  }
  return String.format("%ss", leftTime == 0 ? leftTime : leftTime / 1000 + 1);
 }
});
감청 하 다

countDownView.setCountDownListener(new CountDownView.CountDownListener() {
 @Override
 public void onTick(long leftTime, float finishedAngle) {
  // leftTime:     , finishedAngle:      
 }

 @Override
 public void onStop(boolean reset) {
  //      countDownView.stop()        
 }

 @Override
 public void onFinished() {

 }
});
ps:인 터 페 이 스 는 기본적으로 이 루어 집 니 다.임의의 방법 을 선택 할 수 있 습 니 다.
총결산
안 드 로 이 드 카운트다운 컨트롤 CountDownView 의 인 스 턴 스 코드 에 대한 자세 한 설명 은 여기까지 입 니 다.더 많은 안 드 로 이 드 카운트다운 컨트롤 CountDownView 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기