2013-12-17 78 views
1

我一直在尋找android.widget.ImageView.setTop#方法在android中的替代品,可用於11或蜂窩的api。這樣的替代品是否可用?setTop替代api下11

回答

2

對於Honeycomb(API Level 11)以下的任何內容,您必須使用setLayoutParams(...)。 你可以在Android中動態設置視圖的位置。例如,如果在xml文件的LinearLayout中有ImageView,則可以通過LayoutParams設置其位置。但請確保根據xml文件中採用的佈局獲取LayoutParams。根據所採用的佈局有不同的LayoutParams。

這裏是設置的代碼:

FrameLayout.LayoutParams layoutParams=new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); 
    layoutParams.setMargins(int left, int top, int right, int bottom); 
    imageView.setLayoutParams(layoutParams); 
+0

我收到以下錯誤消息。你能幫忙嗎? 類型AbsListView.LayoutParams – Aashir

+0

未定義setMargins(int,int,int,int)方法,其中圖像視圖的哪種佈局類型?像lineearLayout或相對佈局? –

+0

它在frameLayout中。 – Aashir

0

從機器人單證:doc

設置該視圖相對於其父的頂部位置。這個方法意味着被佈局系統調用,通常不應該被另外調用,因爲這個屬性可能隨時被佈局改變。

不應直接調用此方法,主要是因爲不同的ViewGroup具有不同的佈局方法,這使得此方法不一致(framelayout)。

as @nitesh goel建議使用Margin或padding來設置ViewGroup中的子視圖和其原始位置之間的間距。 doc

尺寸,填充和利潤 一個視圖的大小被表示爲寬度和高度。一個視圖實際上擁有兩對>寬度和高度值。

第一對稱爲測量寬度和測量高度。這些維度定義了視圖想要在其父代中有多大(請參閱佈局以獲取更多詳細信息。)可以通過調用getMeasuredWidth()和getMeasuredHeight()來獲得測量的維度。

第二對簡單地稱爲寬度和高度,或者有時繪製寬度和繪圖高度。這些尺寸定義了屏幕上的視圖的實際尺寸,在繪製時和佈局之後。這些值可能但不一定與測量的寬度和高度不同。寬度和高度可以通過調用getWidth()和getHeight()來獲得。

要衡量其尺寸,視圖會考慮其填充。填充用視圖左側,頂部,右側和底部的像素表示。填充可用於將視圖的內容偏移特定量的像素。例如,左邊距2會將視圖的內容向左邊緣的右側推動2個像素。可以使用setPadding(int,int,int,int)或setPaddingRelative(int,int,int,int)方法設置填充,並通過調用getPaddingLeft(),getPaddingTop(),getPaddingRight(),getPaddingBottom(),getPaddingStart ),getPaddingEnd()。

儘管視圖可以定義填充,但它不提供對邊距的任何支持。但是,查看組提供了這樣的支持。有關更多信息,請參閱ViewGroup和ViewGroup.MarginLayoutParams。