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 에 이 르 렀 을 때 텍스트 를 비어 보이 지 않 게 설정 하여 이 기능 을 실현 합 니 다.
이상 은 안 드 로 이 드 가 문자 제거 효 과 를 실현 하 는 상세 한 내용 입 니 다.안 드 로 이 드 문자 제거 효과 에 관 한 자 료 는 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기