Урок 16. Программное создание экрана в андроид приложениях. LayoutParams | Android Studio

Поділитися
Вставка
  • Опубліковано 16 жов 2024
  • Как добавлять View на экран программно из java кода android приложения? На прошлых уроках мы строили наши приложения с помощью layout файлов компоновки - макетов экранов, где в xml виде описывали View-компоненты пользовательского интерфейса android-приложения. Этот способ достаточно удобный и наглядный, он позволяет уже на этапе создания экрана увидеть, как будет выглядеть наше приложение. Сегодня мы рассмотрим альтернативный способ добавления элементов на экран - непосредственно в java коде нашего приложения.
    Программный способ создания экрана android приложения менее удобный в плане наглядности, однако в некоторых случаях может быть более уместным, например, когда требуется в процессе работы приложения динамически добавлять на экран много простых однотипных view-компонентов и управлять ними. Подробнее мы это рассмотрим на следующем уроке.
    Весь плейлист: • Уроки по основам разра...
    Скачать исходный код проекта: yadi.sk/d/1SBl...
    Группа взаимопомощи Вконтакте для начинающих ANDROID разработчиков и программистов: www.fandroid.in...
    Скачать видеоуроки: www.fandroid.in...
    Поддержите наш проект: www.fandroid.in...
    #android #AndroidStudio #startandroid

КОМЕНТАРІ • 44

  • @ВладимирАлександрович-э1т

    Этот урок более понятен чем 16 урок старый по эклипс, материал вроде тот-же но по итогу стало понятнее)

  • @ThePsychoSpy
    @ThePsychoSpy 9 років тому +8

    Пожалуйста, сделайте урок как сделать http get запрос и получить ответ (текст или json) в Android Studio. Спасибо.

  • @ДобрыйЧеловек-г1ш
    @ДобрыйЧеловек-г1ш 8 років тому

    Спасибо за уроки. Думаю многим они будут полезны.

  • @bufferforrnbtaxi5984
    @bufferforrnbtaxi5984 6 років тому

    Если знаешь java, то все очень понятно=) отличный способ лучше понять архитектуру android-приложения в принципе)

  • @aleksandrgaziev4470
    @aleksandrgaziev4470 6 років тому +1

    А можно ли создать активити не на весь экран?

  • @olenakulazhenko1558
    @olenakulazhenko1558 8 років тому +3

    Здравствуйте. Эмулятор видит только первый TextView, остальные объекты не видит. В чем ошибка?

    • @romanvariichuk6795
      @romanvariichuk6795 8 років тому +1

      +Volodimir Kulazhenko вторую вью видимо не поместили в контейнер методом АддВью !

    • @adequate_response
      @adequate_response 8 років тому +8

      +Volodimir Kulazhenko при создании lpView параметр должен быть WRAP_CONTENT

    • @dastanomirgali2296
      @dastanomirgali2296 8 років тому +1

      +Александр Орлов спасибо чувак

  • @yaroslavk8380
    @yaroslavk8380 5 років тому

    приветствую! Подскажите почему при создании кнопок, все кнопки подписаны в верхнем регистре, хотя setText с переменным, первая большая.textView с разным записывает. AS 3.2.1

    • @MrRakushin
      @MrRakushin 4 роки тому

      btn.setTransformationMethod(null); Должно помочь, но согласен поведение по умолчанию не выглядит логичным.

  • @Maramusta
    @Maramusta 7 років тому

    Такая поблема:
    Всё прописывал как показано в видео, но в эмуляторе показывает просто белый экран с фразой TextView.
    Не могу разобраться в чем тут дело.
    Help.

    • @Maramusta
      @Maramusta 7 років тому

      Почитал предыдущие коменты. Рзобрался))

  • @LoloKsyu
    @LoloKsyu 9 років тому +2

    Если параметры отступа задаются пикселями, не окажется ли это подводным камнем для прочих устройств, на которых приложение не тестировалось?

    • @start_android
      @start_android  9 років тому

      LoloKsyu все верно, лучше использовать dp

    • @JaffaTilk777
      @JaffaTilk777 9 років тому

      +Start Android А этим способом (как в уроке) можно использовать dp? Надо вызывать другой метод?

    • @romanvariichuk6795
      @romanvariichuk6795 8 років тому +4

      +JaffaTilk777 из кода только в пикселах! НО , можно пиксели перевести в ДП и работать с ними! как это сделать - нужно просто погуглить ! px to dp android ссылок будет достаточно !

  • @АндрійКовтун-л7н
    @АндрійКовтун-л7н 7 років тому +2

    Отличные уроки ... пожалуйста подскажите,
    не могу разобраться, как в коде добавлять новые вью групп, Например: в методе setContent запускается LinerLayout с вью компонентами, дальше добавляю в коде ещё один LinerLayout с вью компонентами, но при запуске программы вью элементов вложенного LinerLayout не видно ???
    public class MainActivity extends AppCompatActivity {
    RadioButton rbLeft, rbCenter, rbRight;
    LinearLayout linerLayout2;
    EditText t1;
    Button create, clear;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    LinearLayout mainLinerLayout = new LinearLayout(this);
    mainLinerLayout.setOrientation(LinearLayout.HORIZONTAL);
    LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
    setContentView(mainLinerLayout,params1);
    LinearLayout.LayoutParams radioParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
    RadioGroup r = new RadioGroup(this);
    r.setOrientation(LinearLayout.HORIZONTAL);
    mainLinerLayout.addView(r,radioParams);
    rbLeft = new RadioButton(this);
    rbLeft.setText("Left");
    rbCenter = new RadioButton(this);
    rbCenter.setText("Center");
    rbRight = new RadioButton(this);
    rbRight.setText("Right");
    r.addView(rbLeft);
    r.addView(rbCenter);
    r.addView(rbRight);
    linerLayout2 = new LinearLayout(this);
    linerLayout2.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
    linerLayout2.setOrientation(LinearLayout.HORIZONTAL);
    t1 = new EditText(this);
    create = new Button(this);
    clear = new Button(this);
    t1.setWidth(1);
    create.setWidth(1);
    clear.setWidth(1);
    linerLayout2.addView(t1);
    linerLayout2.addView(create);
    linerLayout2.addView(clear);
    }
    }

  • @alexvolkov8180
    @alexvolkov8180 9 років тому +2

    Ребят, скажите есть ли смысл сильно заострять внимание на данном способе. Так как он у меня получается, но занимает много времени и не совсем интуитивный.

    • @romanvariichuk6795
      @romanvariichuk6795 9 років тому +5

      Алексей Волков в андроид разработке 100% будут моменты когда тебе нужно будет изменять UI в RunTime, тоесть когда приложение работает, вот тут то и нужно кодить лейауты ,а не ИКСЕмЛить

    • @alexvolkov8180
      @alexvolkov8180 9 років тому +1

      Роман Варийчук Понял. Спасибо. Уже столкнулся с такими моментами)

  • @АлександрСомов-х4р
    @АлександрСомов-х4р 8 років тому

    Как задать ориентацию у LayoutParams ?

  • @bernish
    @bernish 6 років тому

    А как так работать только с ConstraintLayout ? Незнаю нужно ли заострять внимание на LinearLayout вроде он уже не актуален...

    • @start_android
      @start_android  6 років тому

      LinearLayout вполне актуален для простых экранов.

    • @bufferforrnbtaxi5984
      @bufferforrnbtaxi5984 6 років тому

      Точно также, создаешь объект ConstraintLayout, и работаешь уже с ним, по аналогии с LinearLayout в этом видео, плюс да, LinearLayout гораздо быстрее работает, чем ConstraintLayout

  • @vitaliy07
    @vitaliy07 8 років тому

    что это за код в protected void onCreate не могу повторить задание подсвечивается красным
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
    Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
    .setAction("Action", null).show();

    • @TheKrushik
      @TheKrushik 8 років тому

      +Віталій Пастух при создании проекта выбери макет Empty Activity

    • @2ra66it
      @2ra66it 8 років тому

      +Віталій Пастух Это тулбар, удали main_activity и content_activity, а также эти строки и программа запустится, однако без тулбара

    • @nice3point
      @nice3point 8 років тому

      +Віталій Пастух с API 22 ActionBar заменили на ToolBar, теперь этот код по умолчанию генерируется. FAB это иконка в виде кружка, обнови SDK до новой версии, 6.0.0, или android N(бета). Для старых проектов нужно будет в Grandle.build(файл в проекте) заменить версию на 23 api и внизу указать билд 22.0.0+ (номер версии можно найти в названии папки в папке с сдк из библиотеки support)

  • @al251251
    @al251251 9 років тому

    спс за урок

  • @КлешОфКланс-я3в
    @КлешОфКланс-я3в 4 роки тому

    Thank you!!!

  • @n.kulyan
    @n.kulyan 7 років тому

    LeanerLayout leanerlayout = new LeanerLayout(this); // на что ссилаетса THIS ????????

    • @start_android
      @start_android  7 років тому

      +Назар Кулян www.linkex.ru/java/this.php

    • @start_android
      @start_android  7 років тому

      +Назар Кулян на Activity

  • @damirnafikov7087
    @damirnafikov7087 8 років тому

    У меня почему-то не выравнивает, что делать?

    • @start_android
      @start_android  8 років тому

      сравните код проекта с вашим

  • @mugen31337
    @mugen31337 9 років тому

    спасибо!!!!

  • @andrewdomingo4109
    @andrewdomingo4109 7 років тому

    я в xml привык ручками писать...

  • @МагомедКаитов-к6у
    @МагомедКаитов-к6у 4 роки тому

    лайк, если ты смотришь 31.12.2019 г.))

  • @Nicktimes
    @Nicktimes 3 роки тому

    Эта писанина щас наверное вымерла

  • @KoperLogic
    @KoperLogic 8 років тому

    Ох это походу для настоящих бизонов, я так не вижу смысла извращаться с кодом чтобы потом запускать на устройстве и смотреть как это будет выглядеть. Уж проще макет создать, но кто я такой. Я всего лишь ленивый новичек

    • @Ostebanable
      @Ostebanable 7 років тому

      Послушал бы внимательно урок, "новичёк". Сказали же, что это вводный урок для динамического создания элементов. А ты говоришь лишь о макете статическом.