2013-10-01 66 views
1

layout_height和layout_width我正在嘗試設置從常量字符串ImageView的高度和寬度:提供從strings.xml中

<ImageView 
      android:id="@+id/GetMailing" 
      android:layout_width="@string/continueBtnWidthHD" 
      android:layout_height="@string/continueBtnHeightHD" 
      android:layout_gravity="center" 
      android:src="@drawable/continue_button_style" /> 

strings.xml,我有:

<string name="continueBtnHeightHD">60dp</string> 
<string name="continueBtnWidthHD">250dp</string> 

但是這在執行setContentView(view_Id)時給出了錯誤。

錯誤是java.lang.RuntimeException:二進制XML文件行#82:您必須提供一個layout_width屬性。

,因爲我想在不同的地方使用相同的價值觀,我使用這種方法。

這有點奇怪,因爲我使用相同的方法來設置EditTextmaxlength,它工作正常。

難道我做錯了什麼?

任何幫助表示讚賞。

回答

2

這是一個不正確地使用字符串資源。您應該使用Dimension來指定尺寸。

3

不要把這些在strings.xml中,把他們作爲dimens.xml尺寸:

<dimen name="continueBtnHeightHD">60dp</dimen> 
<dimen name="continueBtnWidthHD">250dp</dimen> 

然後在layout.xml:

<ImageView 
      android:id="@+id/GetMailing" 
      android:layout_width="@dimens/continueBtnWidthHD" 
      android:layout_height="@dimens/continueBtnHeightHD" 
      android:layout_gravity="center" 
      android:src="@drawable/continue_button_style" /> 
2

而不是使用字符串資源此,你應該使用維度資源。在這裏看到:

http://developer.android.com/guide/topics/resources/more-resources.html#Dimension

您可以創建自己的價值觀文件夾內文件dimens.xml(你把strings.xml中的同一個地方)。

例dimens.xml:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <dimen name="continueBtnHeightHD">60dp</dimen> 
    <dimen name="continueBtnWidthHD">250dp</dimen> 
</resources> 
3

您應該使用文件dimens.xml而不是strings.xml中

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<dimen name="continueBtnHeightHD">60dp</dimen> 
<dimen name="continueBtnWidthHD">250dp</dimen> 
</resources> 

然後在你的佈局,以這種方式中引用這些值:

<ImageView 
      android:id="@+id/GetMailing" 
      android:layout_width="@dimen/continueBtnWidthHD" 
      android:layout_height="@dimen/continueBtnHeightHD" 
      android:layout_gravity="center" 
      android:src="@drawable/continue_button_style" /> 
+0

的android:layout_width = 「@夢詩或Android:layout_width =」 @捫? –

+0

@MohammadAfrashteh當然是'dimen'。錯字固定。謝謝。 – fasteque

4

高度和寬度的意思是使用如下

<resources> 
    <dimen name="my_dimen">10dip</dimen> 
</resources> 

現在,使用上面的屬性在佈局文件中像這樣

android:layout_width="@dimens/my_dimen" 
android:layout_height="@dimens/my_dimen" 

您可以使用@dimen/mydimen任何觀點,只要你需要在版式文件進行硬編碼dp

4

而不是提供 「串」 爲資源的,你提供給它 「捫」 爲:

在dimens.xml

<dimen name="continueBtnHeightHD">60dp</dimen> 
<dimen name="continueBtnWidthHD">250dp</dimen> 

在活動XML文件

<ImageView 
      android:id="@+id/GetMailing" 
      android:layout_width="@dimen/continueBtnWidthHD" 
      android:layout_height="@dimen/continueBtnHeightHD" 
      android:layout_gravity="center" 
      android:src="@drawable/continue_button_style" /> 
3

在values文件夾內創建size.xml如下:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<dimen name="continueBtnHeightHD">60dp</dimen> 
<dimen name="continueBtnWidthHD">250dp</dimen> 
</resources> 

裏面你layout.xml

<ImageView 
      android:id="@+id/GetMailing" 
      android:layout_width="@dimens/continueBtnWidthHD" 
      android:layout_height="@dimens/continueBtnHeightHD" 
      android:layout_gravity="center" 
      android:src="@drawable/continue_button_style" /> 
+0

的android:layout_width = 「@夢詩 或 的android:layout_width =」 @捫 ? –