2011-08-03 15 views
13

私は以下のようにテキストレイアウトを編集しています。画面サイズによってハードウェアごとに異なるサイズを提供する方法はありますか?その後、4、私は以下のレイアウトを与えたいインチハードウェアごとに異なるテキストサイズ

<EditText 
    android:id="@+id/entry" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@android:drawable/editbox_background" 
    android:textColor="#800080" 
    android:text="" 
    android:hint=" No Operator Precednce yet" 
    android:cursorVisible="false" 
    android:textSize="40dip" 

/> 

と他人のために

<EditText 
    android:id="@+id/entry" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@android:drawable/editbox_background" 
    android:textColor="#800080" 
    android:text="" 
    android:hint=" No Operator Precednce yet" 
    android:cursorVisible="false" 
    android:textSize="30dip" 

/> 

答えて

40

レイアウト

レイアウト小

レイアウト正常

レイアウト大

レイアウトXLARGE

ために/のRESにフォルダを作成

レイアウトごとにレイアウトファイルを作成し、アンドロイドは実行時に正しいものを選択します。 ですので、スクリーンサイズごとに完全なレイアウトを変更することができます。

あなたが本当に唯一のサイズを設定したい場合は、これは

値-小さな

値-通常

値-大

をフォルダ作成することができます

値-xlarge

次にdimenを入れます。このように、このフォルダのそれぞれでのxml:

<?xml version="1.0" encoding="utf-8"?>

<resources>

<dimen name="textSizeLarge">22dp</dimen>

</resources>

だけで、各XMLファイルに値(22dp)を変更。あなたが設定に依存する方法で<dimen>を使用する場合は、すべてのデバイスのデフォルトサイズを上書きします http://developer.android.com/guide/practices/screens_support.html

+0

こんにちはChristoph、私はそうしましたが、私の場合、値はvaues-xlargeフォルダからは取られません。だから、私はどこで私が間違って行くのを助けることができますか? – Kalpesh

+0

デフォルトの「値」が選択されたときに教えてもらえますか?私は小さなアンドロイドのデバイスは、 "値 - 小さな"を選択し、大きな、xlargeなどのようなものですが、その場合の "値"フォルダが使用されるだろうか? –

+0

は指定されていません。たとえば、値を大きく指定する場合や値を指定する場合などに便利です。大画面の場合は値の大きい項目を使用します - 大、他のすべての項目は "値" – Axarydax

2

EDIT以下の画面の場合 - これを行うための最善の方法は、DIMENとしてテキストのサイズを定義することであると異なります異なるdpi(ldpi、mdpi、hdpiなど)のバケットフォルダ内のdimens.xmlファイルに異なる値を設定することによって、ターゲットとするハードウェアに応じたサイズになります。

古い(正しいが、素晴らしいではありません)答え、これを行うの

2つの方法:

  1. XMLからの定義を削除し、プログラム的

    ((EditText) findViewById(R.id.entry)).setTextSize(TypedValue.COMPLEX_UNIT_DIP, 40) 
    
  2. implement different layouts for the different screen sizesテキストサイズを設定これは、アプリケーションでサポートしているさまざまな画面サイズごとに新しいxmlレイアウトを作成することになります。

+0

はい、Androidは実行時に使用するXMLを選択するため、プログラムですべてを行うよりも実際に効率的です。あなたが絶対に必要な場合を除いて、決してプログラム的に何もする必要はありません。だから、小さな、通常、大きな&xlargeのための複数のXMLファイルを持つ方がはるかに優れています。 –

+0

あなたは絶対に正しいです - 私は何を考えていたのですか? – Martyn

2

はその後

android:textSize="@dimen/textSizeXtraSmall"

非常に良いdocumantationであなたの値を置き換えます(小さい方は22dp、大きい方は40dp)。あなたはそれがより小さなデバイスのデフォルトであったようにTEXTSIZEを残し、そして唯一の大きなデバイスのためにそれを上書きしたい場合は、スタイルを使用することができます。

のres /値/のstyles.xml:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="EditText" />  

</resources> 

RES /値-大/のstyles.xml:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="EditText" > 
     <item name="android:textSize">40sp</item> 
    </style>  
</resources> 

とレイアウトで:

<TextView style="@style/EditText" ... /> 

textSizeは小さいデバイスには影響を与えず、現在のテーマのデフォルト値が使用されます。

関連する問題