0

テキストビューがあり、Javaファイルでプログラムによってフォントを変更しています。これを行うと、一部のテキストが途切れます。たとえば、「PasswordRecovery」は「PasswordRecov」に移動します。wrap_content属性が古いフォントに適用されていることがわかったので、textviewのwidth属性をwrap_contentではなくfill_parentに変更し、それが機能しました。これは、テキストビューが1行にある場合にのみ修正されます。しかし、新しいフォントで2行になるテキストビューが少なくとも1つあり、前述のように、fill_parentを使用しても、1行下がることはありません。そのため、「パスワードが電子メールで送信されました」という行は、末尾にtoが付いていない「パスワードが電子メールで送信されました」にカットされます。

テキストビューの実際の幅属性を新しいフォントに適用したいと思います。これどうやってするの?

書体を変更する方法は次のとおりです。

私のPassRec.javaで

 private void init() {
    /*
     * load the fonts that are going to be used with this view
     */
    Typeface museoSans700 = Typeface.createFromAsset(JOMAppActivity.instance.getAssets(), "fonts/MuseoSans_700.otf");

    /*
     * start assigning layout elements to local variables
     */
    this.passRecoveryTxtView = (TextView) this.findViewById(R.id.passRecovTxtView);
    this.emailedTxtView = (TextView) this.findViewById(R.id.textView1);
    this.emailTxtView = (TextView) this.findViewById(R.id.userEmailAddPRE);
    this.returnBtn = (Button) this.findViewById(R.id.returnSignInBtn);

    /*
     * Assign the fonts for the login layout
     */
    this.passRecoveryTxtView.setTypeface(museoSans700);
    this.emailedTxtView.setTypeface(museoSans700);
    this.emailTxtView.setTypeface(museoSans700);
4

3 に答える 3

1

XMLレイアウトファイルに移動して追加します

android:maxLines = "2"

最小行がある場合は削除します

于 2012-10-08T19:21:34.153 に答える
1

TextViewでinvalidate()を使用してみてください。

于 2012-10-08T19:45:43.120 に答える
1

答えてくれてありがとう、両方やってみました。文字列の最後にテキスト(何とか何とか)を追加し、プログラムでテキストを元の文字列に変更することになりました。

于 2012-10-08T21:55:54.447 に答える