web-dev-qa-db-ja.com

Androidテキストの配置を編集

私はタブレット用の小さなアプリ、ディスプレイサインのようなものを作っています。

表示記号の中央に配置されたテキスト要素がいくつかあります。タップすると、editTextに変換されます。編集テキストは、その中のテキストが中央に揃えられ、コンテンツがラップされるようにしたいです。しかし、何かを入力すると、editTextは両方の方法で展開し、テキストを中央に揃えて保持します。右揃えのテキスト要素でも同じことをしたいです(唯一の違いは、編集テキストが左方向にのみ拡張されることです)。

今すぐこれを行おうとすると、左に向かって拡大します。これは、編集テキスト要素をレイアウトするための私のコードです

tempView=new EditText(this);
((EditText) tempView).setTextSize(shrinkedFontSize);
((EditText) tempView).setTypeface(tf);
((EditText) tempView).setText(tempInput.getText());     
((EditText) tempView).setGravity(Gravity.CENTER);
layout.addView(tempView, tempParams);

レイアウトの幅をレイアウトパラメーターでWrap_contentとして設定しています。また、編集テキストの左上隅のレイアウトパラメーターでxとyを指定しました。

これを達成する方法はありますか?

21
Dhaval Patel

これで問題が解決するはずです。

_EditText t = (EditText) findViewById(R.id.text);
t.setGravity(Gravity.CENTER);
_

... XMLで:

_<EditText
    Android:id="@+id/text"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:inputType="text" />
_

EditText inputField入力テキストを水平方向の中央に配置します。

_layout_width_を_fill_parent_から150 dpまたは他のサイズに変更できますが、_wrap_content_は変更できません。テキストは水平方向の中央に配置されます。

入力したテキストを左揃えまたは右揃えにするt.setGravity(Gravity.RIGHT);またはLEFTを設定します。

39
Asad Rao

これは、テスト済みのシンプルなソリューションです。レイアウトXMLファイルにAndroid:gravity="center"を追加して、テキストをEditTextの中央に揃えます。 Javaコードを変更する必要はありません。

<EditText
    Android:id="@+id/LastName"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:background="@drawable/back"
    Android:inputType="numberDecimal"
    Android:gravity="center" />
15
Ajay B