java 안드로이드 - Android:TextView는 자동으로 문자열의 마지막 3자를 자르고 바꿉니다.




리소스 접근 (4)

StringTextView 너비보다 길면 자동으로 다음 줄로 넘어갑니다. android:inputType="text" 를 설정하여 android:singleLine (deprecated)을 사용하여이를 피할 수 있습니다. 지금 필요한 것은 내 String 의 마지막 3 문자를 " ... "로 대체하는 것입니다. 고정 폭 글꼴을 사용하지 않으므로 내 String 사용 된 문자에 따라 항상 달라집니다. 그래서 TextView 에서 문자열의 마지막 3 문자를 가져 와서 바꾸는 가장 좋은 방법은 무엇일까 궁금합니다. 아마도 이것이 공통적 인 문제이기 때문에 안드로이드 프레임 워크에 이미 구현 된 것이있을 것입니다.


Answers

텍스트보기의 "줄임표"속성을 사용할 수 있어야합니다.

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/text_mytext"
    android:ellipsize="end"
    android:maxLines="1"
/>

또한 레이아웃에 중력 값을 적용해야 할 수도 있습니다. 나는 때때로 그것들없이 "auto-stretching"뷰를 보았습니다.


프로그래밍으로

당신이 사용할 수있는

TextView tx = new TextView(this);
tx.setTextSize(13);
tx.setGravity(Gravity.CENTER);
tx.setTop(90);
tx.setText("Long text here");
tx.setTextColor(Color.BLACK);
tx.setSingleLine(true);
tx.setEllipsize(TruncateAt.END);

이 문제에 대한 흥미로운 일 - 라운드를 발견했습니다.

maxLines=1
ellipsize=end
scrollHorizontally=true

트릭은 수평 스크롤에 관한 마지막 문장입니다. 적어도 v2.2에서 작동합니다.


단순한. 이것이 내가 그랬던 방법이다 :

  1. XML 측면 :

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        tools:context="com.mbh.usbcom.MainActivity">
        <TextView
            android:id="@+id/tv_log"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:scrollbars="vertical"
            android:text="Log:" />
    </RelativeLayout>
    
  2. 자바 측 :

    tv_log = (TextView) findViewById(R.id.tv_log);
    tv_log.setMovementMethod(new ScrollingMovementMethod());
    

보너스:

텍스트가 채워지면서 텍스트보기를 아래로 스크롤하려면 다음을 추가해야합니다.

    android:gravity="bottom"

TextView xml 파일에 저장합니다. 더 많은 텍스트가 들어 오면 자동으로 아래로 스크롤됩니다.

물론 set text 대신 append 함수를 사용하여 텍스트를 추가해야합니다.

    tv_log.append("\n" + text);

Log 용도로 사용했습니다.

이게 도움이 되길 바란다 ;)





java android textview