2012-02-27 5 views
26

異なる画面サイズのデバイスに異なるレイアウトの重みを設定する必要があり、dimensファイルの値を渡したいのですが、dimensファイルの参照がエラーをスローし続けるという問題があります。次元(dimens)からlayout_weight参照を渡す

私はdimens Fから値を渡すにはどうすればよい
error: Error: Integer types not allowed (at 'progress_widget_item3_weight' with value '9'). 

または

error: Error: Float types not allowed (at 'progress_widget_item3_weight' with value '9.1'). 

<dimen name="progress_widget_item3_weight">9</dimen> 

layout_weightのためのile?ありがとうございます

答えて

49

数値の代わりに、integerを使用して整数を宣言して参照することができます。 integers.xmlで

例宣言:レイアウトで

<resources> 
    <integer name="left">1</integer> 
    <integer name="right">2</integer> 
</resources> 

例参照:( `float`値を受け入れるように指定されている)layout_weightため@integer値を使用してつながること

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <FrameLayout 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="@integer/left" /> 

    <FrameLayout 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="@integer/right" /> 

</LinearLayout> 
+1

注LG Optimus L1/L3、Samsung Galaxy Y/Neo、Blackberry Q10などの特定のデバイスで、java.lang.NumberFormatException:無効なfloatエラーが発生しました。 – Nachi

3

私はあなたがそれを行うことはできないと思います。 xmlファイルのドキュメントには、layout_widthdimensionがある場合など)とは異なり、floatdimension)と記載されています。

ハードコードされたfloatの値を、さまざまな画面依存レイアウトで使用できます。

関連する問題