Android 문자 제거 효과 구현
효과 그림 먼저 보기:
프로젝트 와 음성 인식 이 관련 되 기 때문에 가끔 사람들 이 무심코 교류 하 는 잘못된 오디 오 가 인식 되 고 화면 에 보 여 준다.미관 을 위해 고객 은 우리 에 게 이런 잘못된 식별 텍스트 를 오른쪽 에서 왼쪽 까지 의 애니메이션 으로 제거 하 라 고 요구 하기 때문에 다음 과 같은 기술 이 실현 되 었 다.
응,효과 가 끝나 면 원리 와 간단 함 을 발견 할 수 있어.이것 만 기록 해 봐.
1.layot 파일 을 여기에 붙 입 니 다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="44dp"
android:text=" , 。 , 。"
android:ellipsize="none"
android:singleLine="true"
android:background="#ff00ff"
android:layout_marginTop="10dp"
android:id="@+id/tv_text"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btn_click"
android:text=" "/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/btn_click1"
android:text=" "/>
</LinearLayout>
btn_click 1 은 프 리 젠 테 이 션 의 편 의 를 위해 디자인 되 었 으 므 로 고려 하지 않 습 니 다.TextView 에 필요 한 것:
android:ellipsize="none"
android:singleLine="true"
두 속성,이 효 과 는 한 줄 의 텍스트 에 만 적 용 됩 니 다.2,자바 코드 붙 여
public class MainActivity extends AppCompatActivity {
private TextView textView;
private Button btn_click;
private Button btn_click1;
private Handler mHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mHandler = new Handler();
textView = findViewById(R.id.tv_text);
btn_click = findViewById(R.id.btn_click);
btn_click1 = findViewById(R.id.btn_click1);
btn_click.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showAsrAnim();
}
});
btn_click1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textView.setVisibility(View.VISIBLE);
textView.setText(" , " +" , 。");
}
});
}
private void showAsrAnim() {
mHandler.post(new Runnable() {
@Override
public void run() {
// ValueAnimator.ofInt textView 2 , 400ms,
// : ValueAnimator
ValueAnimator animator = ValueAnimator.ofInt(textView.getWidth(), 2);
animator.setInterpolator(new LinearInterpolator());
animator.setDuration(4000);
// :
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
// ValueAnimator ,
int width = (int) animation.getAnimatedValue();
changeLayout(width);
if (width == 2) {
textView.setText("");
textView.setVisibility(View.INVISIBLE);
ViewGroup.LayoutParams params = textView.getLayoutParams();
params.width = ViewGroup.LayoutParams.WRAP_CONTENT;
textView.setLayoutParams(params);
}
}
});
animator.start();
}
});
}
private void changeLayout(int width) {
ViewGroup.LayoutParams params = textView.getLayoutParams();
params.width = width;
textView.setLayoutParams(params);
}}
}
코드 에 설명 이 있 습 니 다.ValueAnimator 인 스 턴 스 를 만 들 고 감청 을 추가 합 니 다.운동 을 통 해 TextView 의 폭 을 바 꾸 고 최소 너비 2dp 에 이 르 렀 을 때 텍스트 를 비어 보이 지 않 게 설정 하여 이 기능 을 실현 합 니 다.이상 은 안 드 로 이 드 가 문자 제거 효 과 를 실현 하 는 상세 한 내용 입 니 다.안 드 로 이 드 문자 제거 효과 에 관 한 자 료 는 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.