Добавить прописку на вид программно

Я разрабатываю приложение Android v2.2.

У меня есть fragment .

В onCreateView(...) моего classа fragmentа я раздуваю макет на fragment, как onCreateView(...) ниже:

 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.login, null); return view; } 

Вышеупомянутый раздутый файл макета (login.xml):

      

Я хотел бы установить paddingTop для элемента , и я хочу сделать это в коде Java вместо того, чтобы делать это в xml.

Как установить paddingTop в в моем fragmentе кода Java classа?

view.setPadding(0,padding,0,0);

Это приведет к тому, что верхнее дополнение будет дополнять -пикселями.

Если вы хотите установить его вместо dp , вы можете сделать преобразование :

 float scale = getResources().getDisplayMetrics().density; int dpAsPixels = (int) (sizeInDp*scale + 0.5f); 

Чтобы ответить на ваш второй вопрос:

 view.setPadding(0,padding,0,0); 

как предложено SpK и Jave, будет устанавливать прописку в пикселях. Вы можете установить его в dp, вычислив значение dp следующим образом:

 int paddingDp = 25; float density = context.getResources().getDisplayMetrics().density int paddingPixel = (int)(paddingDp * density); view.setPadding(0,paddingPixel,0,0); 

Надеюсь, это поможет!

Если вы храните отступы в файлах ресурсов, вы можете просто позвонить

  int padding = getResources().getDimensionPixelOffset(R.dimen.padding); 

Он делает конверсию для вас.

Вы можете настроить прописку на ваш взгляд программно по всему ниже кода –

 view.setPadding(0,1,20,3); 

И, кроме того, есть различный тип прокладки –

набивка

PaddingBottom

PaddingLeft

PaddingRight

PaddingTop

Эти ссылки будут ссылаться на сайт разработчиков Android. Надеюсь, вам это поможет.

Использование TypedValue – это гораздо более чистый способ преобразования в пиксели по сравнению с ручным вычислением:

 float paddingDp = 10f; // Convert to pixels int paddingPx = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, paddingDp, context.getResources().getDisplayMetrics()); view.setPadding(paddingPx, paddingPx, paddingPx, paddingPx); 

По сути, TypedValue.applyDimension преобразует желаемое дополнение в пиксели соответствующим образом в зависимости от свойств отображения текущего устройства.

Для получения дополнительной информации см.: TypedValue.applyDimension Docs .

использовать ниже метод для динамического добавления прокладки

 setPadding(int left, int top, int right, int bottom) 

Пример :

 view.setPadding(2,2,2,2); 

Напишите следующий код, чтобы установить дополнение, это может вам помочь.

  TextView ApplyPaddingTextView = (TextView)findViewById(R.id.textView1); final LayoutParams layoutparams = (RelativeLayout.LayoutParams) ApplyPaddingTextView.getLayoutParams(); layoutparams.setPadding(50,50,50,50); ApplyPaddingTextView.setLayoutParams(layoutparams); 

Используйте LinearLayout.LayoutParams или RelativeLayout.LayoutParams в соответствии с родительским макетом детского просмотра

В то время как прокладка программно преобразуется в значения, связанные с плотностью, путем преобразования пикселя в Dp.

Контекст contect = MainActivity.this; TextView tview = новый TextView (контекст); tview.setPaddingRelative (10,0,0,0);

  • Установить ширину и высоту ImageView программно?
  • Использование акселерометра, гироскопа и компаса для расчета движения устройства в 3D-мире
  • Как получить номер сборки / версии вашего приложения для Android?
  • Как загрузить сервисы Google Play в Android-эмуляторе?
  • Как просматривать localhost на устройстве Android?
  • Вызвано: android.os.NetworkOnMainThreadException
  • Поиск полосы, изменение цвета пути с желтого на белый.
  • Изменение положения диалогового windows на экране Android
  • Эмулятор Android: не удалось получить ошибку wglGetExtensionsStringARB
  • Каталог данных не имеет права на чтение и запись в Android
  • Не удается запустить AVD в эмуляторе: библиотека QT не найдена
  • Interesting Posts

    Вложение свойств по атрибутам

    Как настроить Wildfly для обслуживания статического контента (например, изображений)?

    Ссылка на текст из одной ячейки в уравнение в Excel

    объявление друга объявляет функцию без шаблона

    Удалить раздел и расширить параметр раздела отключен

    Встраивание ресурсов (изображений, звуковых fragmentов и т. Д.) В проект Java, затем использование этих ресурсов

    Сопоставлено ли целочисленное переполнение по-прежнему неопределенным поведением в C ++?

    char и int в Java

    Создайте таблицу ВИЧ с мультисимвольным разделителем

    Отрегулируйте компоновку, когда включена мягкая клавиатура

    Клавиши переключения (Fn) и Control (Ctrl) на Lenovo ThinkPad W500

    Драйвер JDBC генерирует исключение «ResultSet Closed» на пустой ResultSet

    «Java DateFormat не является streamобезопасным», к чему это приводит?

    Возможно ли автообновление для classов, которые я создаю?

    Возможны ли определения рекурсивного типа C ++, в частности, можно ли положить вектор в определение T?

    Давайте будем гением компьютера.