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);
}
총결산이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 안 드 로 이 드 개발 자 들 에 게 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.