0
我試圖從.xml
文件中獲得邊距。目前,我正在做它像這樣:從屬性檢索邊距
<ch......MyCustomView
android:id="@+id/update_progress"
android:layout_width="400dp"
android:layout_height="200dp"
android:layout_marginLeft="10dp"
android:layout_alignParentRight="true"
android:visibility="invisible" />
:
mUserDefinedLeftMargin = attrs.getAttributeIntValue("http://schemas.android.com/apk/res/android", "layout_marginLeft", 0);
其中attrs
是AttributeSet
型
的.xml
看起來是這樣的(它在一個延伸RelativeLayout
構造函數或我的類的接收)
mUserDefinedLeftMargin
在上述呼叫結束時仍然爲0。爲什麼?
這是因爲DP是不是int值。看看http://stackoverflow.com/questions/8302229/accessing-attrs-in-attributeset-for-custom-components。它是字符串,你應該將它轉換爲點 –
優秀!請將它寫爲迴應,所以我可以接受它 – AndreiBogdan
不這樣做,請改用Context.obtainStyledAttributes(AttributeSet set,int [] attrs),而不需要將像「14.0sp」這樣的字符串轉換爲浮點值 – pskink