Как центрировать макет вертикально в андроиде через java-код?

друзья,

Я хочу установить android: layout_centerVertical = "true" свойство макета через java-код изображения.

Может ли кто-нибудь помочь мне в этом. Вот мой код.

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); params.height = (int)totalHeight; img.setLayoutParams(params); 

Я попытался использовать setScaleType (ScaleType.FIT_CENTER), но не использовал.

Любая помощь будет назначена.

Solutions Collecting From Web of "Как центрировать макет вертикально в андроиде через java-код?"

Исправьте меня, если я ошибаюсь, но похоже, что вы пытаетесь установить выравнивание (или позиционную ориентацию) изображения внутри макета? Для этого вам нужно установить свойство тяжести макета, содержащего выровненный вид.

  Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon); RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout); RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT); ImageView imageView = new ImageView(this); imageView.setLayoutParams(params); imageView.setImageBitmap(bitmap); layout.setGravity(Gravity.CENTER_VERTICAL | Gravity.TOP); layout.addView(imageView); 

В этом примере я программно добавляю изображение в RelativeLayout в свой ресурс макета, добавляя ImageView и выравнивая его, чтобы он был размещен в верхней, вертикальной центральной позиции.

Попробуйте этот код.

 RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams ((int) LayoutParams.WRAP_CONTENT, (int) LayoutParams.WRAP_CONTENT); params.addRule(RelativeLayout.CENTER_VERTICAL); img.setLayoutParams(params); 

В новом SDK нет Gravity.VERTICAL_CENTER , но, возможно, вы можете установить это с помощью layout.setGravity(Gravity.CENTER) .