2010-04-11 7 views
9

Quiero agregar ImageView a FrameLayout con gravedad o márgenes. pero FramLayout e ImageView no tienen ningún método al respecto (En realidad, no puedo encontrar eso). La razón que selecciona Framelayout es poner ImageView en ImageView.¿Cómo establecer la gravedad (o los márgenes) de ImageView usando el código?

Ayúdame por favor. Es una emergencia para mí encontrar una solución.

thx.

A continuación se muestra mi código que ayuda a comprender mi pregunta.

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); 

Respuesta

17

Probar:

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

Más información:

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

+0

FrameLayout, entre otros, tiene un método SetMargins. – drawnonward

+0

Ese método que tiene un setMargins no funciona en mi código T^T. Y apliqué el código anterior, pero no coincide con mis expectativas. así que uso una forma diferente. (framelayout (imageview, talbelayout (imageview))); tablelayout tiene un relleno. ¡terrible! – Mastojun

Cuestiones relacionadas