2010-04-11 55 views
9

我想用重力或邊距將ImageView添加到FrameLayout。但FramLayout和ImageView沒有任何方法(實際上,我找不到)。選擇Framelayout的原因是將ImageView放在ImageView上。如何使用代碼設置ImageView的重力(或邊距)?

幫我看看。我很難找到解決辦法。

thx。

下面是我的代碼,這有助於理解我的問題。

FrameLayout imageFrame = new FrameLayout(mContext); 
imageFrame.setLayoutParams(new GridView.LayoutParams(158, 158)); 

ImageView frame = new ImageView(mContext); 
frame = new ImageView(mContext); 
frame.setLayoutParams(new LayoutParams(158, 158)); 
frame.setScaleType(ImageView.ScaleType.CENTER_CROP); 
frame.setImageResource(R.drawable.image_frame_n); 

ImageView image = new ImageView(mContext); 
image.setLayoutParams(new LayoutParams(148, 148)); 
image.setScaleType(ImageView.ScaleType.CENTER_CROP); 
image.setImageResource(mThumbIds[position]); 
// image is needed to have a margin or gravity to be positioned at center of imageFrame 

imageFrame.addView(image); 
imageFrame.addView(frame); 

回答

17

嘗試:

image.setLayoutParams(new FrameLayout.LayoutParams(width, height, gravity)); 

更多信息:

http://developer.android.com/reference/android/widget/FrameLayout.LayoutParams.html

+0

的FrameLayout,除其他外,有一個setMargins方法。 – drawnonward 2010-04-11 19:25:02

+0

That Method巫婆有一個setMargins不工作在我的代碼T^T。 而我應用上面的代碼,但它不符合我的期望。所以我用不同的方式。 (framelayout(imageview,talbelayout(imageview))); tablelayout有一個填充。可怕! – Mastojun 2010-04-11 23:02:39