Intereting Posts
Реализация аудиопроигрывателя в списке в Android Разная тема для разных версий Android SDK Изменить уведомление об андроиде без остановки и начать сервис снова Запустить цикл каждую секунду java Как я могу оживить изменение цвета панели состояния и панели инструментов (как это делает новое приложение «Календарь») Android – Как сделать значок светом на ощупь? Как достичь пользовательского интерфейса Android, как этот макет изображения? О пользователе android: clipChildren Android Auto приложение никогда не вызываетGetRoot Как установить несколько интервалов в тексте TextView (щелчок и полужирный) Как я могу узнать, какую версию поддержки Android версии v4 я использую? OnConfigurationChanged не получает вызов в первый раз Тестирование бесконечной прокрутки RecyclerView с помощью Espresso и RxJava Может ли Android Studio автоматически извлекать ссылки из XML-файла Layout в java-файл Activity? Как включить USB-отладку для Samsung S7 Переименуйте учетную запись на Android (AccountManager)

Как центрировать макет вертикально в андроиде через 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), но не использовал.

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

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

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