Android 가 디지털 점프 효 과 를 실현 하 는 TextView 방법 예시

머리말
본 고 는 안 드 로 이 드 가 디지털 점프 효 과 를 어떻게 실현 하 는 지 에 대한 TextView 를 소개 한다.주로 DancingNumberView 를 활용 했다.DancingNumberView 는 텍스트 의 숫자 를 점프 하여 표시 하 는 컨트롤 로 TextView 에서 계승 된다.이런 컨트롤 은 일반적으로 금액 등 사용자 에 게 민감 한 숫자 를 표시 하여 UI 의 상호작용 을 더욱 생동감 있 게 한다.
그것 은 다음 과 같은 몇 가지 특성 을 가지 고 있다.
4.567917.텍스트 에 있 는 모든 숫자 를 자동 으로 가 져 오고 동시에 뛰 기 시작 하여 여러 개의 TextView 조합 이 번 거 롭 지 않도록 합 니 다4.567917.숫자 를 사용자 정의 형식 으로 표시 하 는 것 을 지원 합 니 다.예 를 들 어 소수점 뒤의 두 자리 만 표시 하도록 제한 합 니 다.
효과 도 는 다음 과 같다

가 져 오기 사용
Gradle
첫 번 째 단 계 는 프로젝트 의 build.gradle 파일 에 적당 한 위 치 를 추가 합 니 다.

allprojects { 
 repositories { 
  ... 
  maven { url "https://jitpack.io" } 
 } 
} 
두 번 째 단 계 는 app 의 build.gradle 파일 에 의존 항목 을 적당 한 위치 에 추가 합 니 다.

dependencies { 
  compile 'com.github.JianxunRao:DancingNumberView:V1.0.1' 
} 
사용 방식
XML 레이아웃 으로

<me.trojx.dancingnumber.DancingNumberView 
   android:id="@+id/dnv" 
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   app:dnv_duration="6000" 
   app:dnv_format="%.2f"/> 
자바 코드 로

DancingNumberView dnv = (DancingNumberView) findViewById(R.id.dnv); 
 dnv.setText(text);//       
 dnv.setDuration(duration);//           (  ms) 
 dnv.setFormat(format);//          
 dnv.dance();//    ,       
키 코드

/** 
*            
 
*/ 
 
public void dance() { 
 
text = getText().toString(); 
 
numbers=new ArrayList<>(); 
 
Pattern pattern = Pattern.compile("\\d+(\\.\\d+)?"); 
 
Matcher matcher=pattern.matcher(text); 
 
while (matcher.find()){ 
 
numbers.add(Float.parseFloat(matcher.group())); 
 
} 
 
textPattern = text.replaceAll("\\d+(\\.\\d+)?",PLACEHOLDER); 
 
numberTemp=new float[numbers.size()]; 
 
ObjectAnimator objectAnimator=ObjectAnimator.ofFloat(this,"factor",0,1); 
 
objectAnimator.setDuration(duration); 
 
objectAnimator.setInterpolator(new AccelerateDecelerateInterpolator()); 
 
objectAnimator.start(); 
 
} 
 
/** 
 
*        
 
* @return      
 
*/ 
 
public float getFactor() { 
 
return factor; 
 
} 
 
/** 
 
*       , ObjectAnimator   
 
* @see ObjectAnimator 
 
* @param factor      
 
*/ 
 
public void setFactor(float factor) { 
 
String textNow=textPattern; 
 
this.factor = factor; 
 
for (int i=0;i<numberTemp.length;i++){ 
 
numberTemp[i]=numbers.get(i)*factor; 
 
textNow=textNow.replaceFirst(PLACEHOLDER,String.format(format,numberTemp[i])); 
 
} 
 
setText(textNow); 
 
} 
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 안 드 로 이 드 개발 자 들 에 게 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기