2012-01-30 17 views
1

非常に高密度の/コンパクトなTextView-fullアプリケーションで、3文字の幅のEditTextをいくつか持っています。ほとんどのデバイスとエミュレータで通常表示されます。しかし、HTC Evo 3D、HTC myTouch 4G、Viewsonic gTabletではEditTextの幅が2倍になります。Android EditTextは特定のデバイス、特にHTCで動作しない

まだ行動を複製しながら、可能な限り離れてストリップ:

<EditText android:id="@+id/editTextFoo" 
    android:hint="123" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:minEms="3" 
    android:maxEms="3"/> 

私は、ピクセル単位で指定することで、代わりにwrap_contentのDP、またはSPを、それを制約することができますが、それは異なるため、すべてのレイアウトではかなり満足のいかないのですスクリーンのサイズと密度。

EditTextsは、一部のデバイスで最小幅に実装されていますか?

編集:これはいくつかの異なるレイアウトタイプで発生しています。自分の質問へ

+0

はおそらく、このようなTableLayout'または '' RelativeLayout'として、異なるレイアウト構造を使用することを検討したいです。 – Phil

答えて

0

回答:

ビット直観に反する

が、私は、私が以前に作ったゲームからいくつかのコードをつかみました。 PaintのmeasureTextメソッドはうまくいきました。モノスペースフォントを使用している場合は、n文字の文字列が使用されます。

Paint p = new Paint(); 
p.setTextSize(editTextFoo.getTextSize()); 
int w = (int) p.measureText("MMM"); 
LayoutParams layoutParams = new LayoutParams(w+40,LayoutParams.WRAP_CONTENT); 
editTextFoo.setLayoutParams(layoutParams); 
関連する問題