2013-03-09 3 views
0

Я новичок в Android, и хочу сделать макет, как показано ниже:Выбор лучшего макета Android

  1. Логотип на вершине.
  2. После прямоугольника с закругленными углами
  3. В пределах этого прямоугольника, у меня будет два EditText поля для идентификатора пользователя и пароля, а также одну кнопки Войти
  4. под прямоугольник с закругленными углами (снаружи) у меня есть Html ссылка Условия & Условие

Я пробовал различные способы компоновки из

  1. Использования только макета. Различные виды макетов. Все, кажется, очень трудно достичь того, что мне нужно
  2. Использование макета + фон. Фон на самом деле не является фоном, но скорее похож на шаблон, он будет влиять на ваш макет, и очень сложно контролировать, где вы хотите, чтобы ваш контроль находился.
  3. Использование onDraw. Гибкий, но обеспокоенный тем, что у него могут быть проблемы с разными размерами экрана.

Итак, кто-то, пожалуйста, просветите, что является лучшим способом добиться того, что мне нужно?

+0

Используйте XML, и я думаю, что использовать линейный макет как вертикальный, как основной вид, и вставлять логотип в первую строку и относительный макет во второй строке, чтобы вы могли делать то, что хотите. Конечно, вы бы сделали свой собственный актив для закругленного прямоугольника. Думаю, – adarsh

ответ

2

Никто не может сказать вам, что лучше, это зависит от того, что вы хотите, но я бы предложил использовать RelatvieLayout, поскольку они, как правило, самые простые и эффективные в использовании, когда вы немного работаете с ними, на мой взгляд , Вы можете прочитать Here, чтобы узнать, как сделать прямоугольник. Вы в основном будете использовать shape drawable и отрегулируйте radiuscorners.

Что касается логотипа на вершине, если он будет повторно использовать в других Activity с, то вы можете поместить его в своей компоновке и использовать include тег в верстку для повторного использования компоновки LoGo

Если вы беспокоятся о разных размерах экрана, затем прочитайте Docs и найдите, что сработает для вас. Просто начните с этого и отрегулируйте, как вы идете. Не бойтесь испортить и переделать некоторые из них. Надеемся, что это достаточно информации, чтобы вы начали

Использование RelativeLayout даст вам большую гибкость и позволяют использовать менее Layouts, такие как вложенные LinearLayout с и Layout S только с одним ребенком, который может улучшить производительность

2

это как это должно быть сделано: начать с линейной схемы с вертикальной ориентацией:

<linearLayourt xmlns=............ 
android:orientation="vertical" 
.....other stuffs goes here 
...... 
..... 
<LinearLayout ......this is the child linearlayout 
.....other stuffs goes here like width and height 
<ImageView ...this is where you are gonna put your logo in 
/> 
</LinearLayout> ....close your child linear layout 
<RelativeLayout ... 
.........other stuffs here 
<EditText ....1st edit text 
...you position your boxes here 
/> 
<EditText ....2nd edit text 
...you position your boxes here 
/> 
</RelativeLayout> 
<TextView 
.... 
... 
...put yout hyperlink for this text 
/> 
</LinearLayout> ...this is the parent linear layout 
+1

Спасибо. Оно работает. К сожалению, я еще не могу нажать кнопку голосования. –

+0

Если вы можете отметить правильный ответ, это было бы здорово. благодаря – Peshal

0

в вашем случае создания Вход экрана, это не имеет значения, так как это относительно легкий экран для проектирования. Мне лично нравится использовать XML для разработки моих макетов и никогда не видел его, используя метод onDraw.

Мое предложение для вас, как @codeMagic, заключается в том, чтобы научиться использовать и обрабатывать RelativeLayouts, так как это предотвратит создание каскадных макетов, которые на самом деле не рекомендуются и требуется много времени для загрузки.

Когда я начал программировать для Android я нашел LinearLayout быть простым для понимания и использования, но используя это принесло бы мне много LinearLayouts внутри LinearLayouts на комплексном экране Designz, а затем с использованием RelativeLayout я понял, что в в большинстве случаев один RelativeLayout может заменить многие каскадные линейные.

в вашем случае вы могли бы сделать некоторые вещи, как это:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

     <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:src="@drawable/drop_down_icon" /> 

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/imageView1" > 

    </EditText> 

    <EditText 
     android:id="@+id/editText2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/editText1" /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/editText2" 
     android:layout_centerHorizontal="true" 
     android:text="Button" /> 



    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/button1" 
     android:layout_centerHorizontal="true" 
     android:text="TextView" /> 

</RelativeLayout> 

Все, что осталось добавить желаемые padings и полей.

Смежные вопросы