2014-01-15 198 views
0

我試圖將imageview的layout_marginTop設置爲不同密度/屏幕尺寸的一個值。在我的價值觀,MDPI文件夾我有dimensions.xml在ImageView上設置邊距

<dimen name="marginTop">10dp</dimen> 

下面一行在MainActivity

ImageView image = (ImageView) findViewById(R.id.s_image); 

但沒有setmargin方法ImageView的。有沒有辦法做到這一點?

回答

0

您不需要在代碼中這樣做,您可以在定義圖像視圖的XML文件中執行此操作。有關更多詳細信息,請參見this page

<TextView 
    android:layout_height="@dimen/textview_height" 
    android:layout_width="@dimen/textview_width" 
    android:textSize="@dimen/font_size"/> 
+0

感謝您的幫助。 – KFP

0

你在正確的軌道上。在xml中引用維度值最容易(而不是在java代碼中設置)。

<ImageView 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_marginTop="@dimen/yourMarginTopValue" /> 
0

試試把android:adjustViewBounds="true"

0

它可能會更好做它在XML因爲你似乎已經在XML中定義的ImageView

但是,layout_* XML屬性引用父佈局的LayoutParams,而不是視圖本身。要在代碼中更改它們,請使用getLayoutParams()訪問它們,進行修改並呼叫requestLayout()安排重新佈局過程。例如:

ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams)imageView.getLayoutParams(); 
lp.topMargin = 123; 
imageView.requestLayout();