Съдържание
А Относително оформление е групов изглед, който показва компонентите в позиции спрямо друг компонент. Позицията на всеки компонент може да бъде определена спрямо други елементи, като например вляво от бутон или под определено текстово поле или подравнена в долната, лявата или средната част.Започваме в урока Разработване на местни приложения за Android с Netbeans, обясняващи как да се използва Линейно оформлениеВ този урок ще видим контейнера за създаване на интерфейси в Android е Relative Layout.
Основната характеристика на това оформление е, че компонентите, които са вътре в този контейнер, ще локализират позицията си спрямо другите елементи. По този начин можем да определим, че Компонентът на бутона е разположен под компонента на текстовото поле и той от своя страна е подравнен хоризонтално по отношение на компонента Label.
Сред свойствата, които ни помагат да позиционираме елементите спрямо другите, са:
android: layout_above: това означава, че компонентът, който има това свойство, ще бъде разположен над компонента, който посочваме.
Пример:
Бутонът ще бъде позициониран над елемента на етикета, както е посочено android: layout_above = "@ id / title"
android: layout_alignLeft: Това означава, че компонентът, който има това свойство, трябва да съвпада с левия ръб на компонента, който посочваме. Ако искаме да съвпада с десния ръб, ще използваме android: layout_alignRight.
android: layout_toLeftOf: Това означава, че компонентът, който има това свойство, ще се намира вляво от компонента, който посочваме.
android: layout_toRightOf: Това означава, че компонентът, който има това свойство, ще бъде позициониран вдясно от компонента, който посочваме.
android: layout_bottom: Това означава, че компонентът, който има това свойство, ще бъде позициониран под компонента, който посочваме.
Ще програмираме прост пример за калкулатор в Android, в този урок ще използваме Netbeans и Android SDK, както направихме в урока Разработване на местни приложения за Android с Netbeans.
Ще създадем проекта LayoutRelativo
След като проектът бъде създаден, ще започнем с дизайна в папката с оформление, отворете файла main.xml и копирайте следния код:
Тогава ще напишем функционалността в Java във файла MainActivity.java
пакет com.Relative; импортиране на android.app.Activity; импортиране на android.os.Bundle; импортиране на android.widget. *; импортиране на android.view. *; публичен клас MainActivity разширява Activity {// Инстанцираме променливи и компоненти, които ще използваме // за изчисления private double number, numberrob; частна стойност на EditText, valueb; частен резултат TextView; public void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); // Стартираме приложението с основното оформление setContentView (R.layout.main); // Присвояваме всеки компонент на променлива this.valora = (EditText) findViewById (R.id.numeroa); this.valorb = (EditText) findViewById (R.id.numerob); this.result = (TextView) findViewById (R.id.result); } public void btSumar (View view) {// Добавяне на функция // Ако и двете стойности са по -големи от нула, тя се преобразува в десетично число и се добавя if (this.value.getText (). toString (). length ( )> 0 && this.valorb.getText (). ToString (). Length ()> 0) {this.numeroa = Double.parseDouble (this.valora.getText (). ToString ()); this.numerob = Double.parseDouble (this.valorb.getText (). toString ()); this.result.setText (Double.toString ((this.numeroa + this.numerob))); }} public void btRestar (View view) {// Функция за изваждане // Ако и двете стойности са по -големи от нула, тя се преобразува в десетично число и се изважда if (this.value.getText (). toString (). length ()> 0 && this.valorb.getText (). ToString (). Length ()> 0) {this.numeroa = Double.parseDouble (this.valora.getText (). ToString ()); this.numerob = Double.parseDouble (this.valorb.getText (). toString ()); this.result.setText (Double.toString ((this.numeroa - this.numerob))); }} public void btMultiplicar (View view) {// Multiply function // Ако и двете стойности са по -големи от нула, тя се преобразува в десетично число и се умножава if (this.value.getText (). toString (). length ()> 0 && this.valorb.getText (). ToString (). Length ()> 0) {this.numeroa = Double.parseDouble (this.valora.getText (). ToString ()); this.numerob = Double.parseDouble (this.valorb.getText (). toString ()); this.result.setText (Double.toString ((this.numeroa * this.numerob))); }} public void btDivide (View view) {// Divide function // Ако и двете стойности са по -големи от нула, тя се преобразува в десетично число и се разделя if (this.value.getText (). toString (). length ()> 0 && this.valorb.getText (). ToString (). Length ()> 0) {this.numeroa = Double.parseDouble (this.valora.getText (). ToString ()); this.numerob = Double.parseDouble (this.valorb.getText (). toString ()); if (this.numerob! = 0) {this.result.setText (Double.toString ((this.numeroa / this.numerob))); }}} публично логическо onCreateOptionsMenu (Меню меню) {// Създаване на меню от шаблон или оформление getMenuInflater (). inflate (R.menu.main, меню); връщане true; }Стартираме приложението и когато емулаторът е активиран, ще видим следния екран.
Първото текстово поле приема само числа, които съдържат 1 или 5, както посочихме, което може да бъде комбинация от цифрите в спецификациите на дизайна със свойството android: цифри = "12345"
Също така ще добавим меню и подменю в папката Ресурси Ще създадем папка, наречена menu и вътре в xml файл, наречен main.xm, който ще има конфигурация на менюто.
Вътре в папката със стойности трябва да декларираме името на менюто във файла strings.xml
Калкулатор - Конфигурация на относителното оформлениеПускаме приложението отново и след това натискаме бутона на менюто и кликваме върху Настройка.
Постигнахме напълно функционално приложение, за да тестваме как работи, ако завъртим мобилния телефон и екранът трябва да бъде приспособен, натискаме:
Ctrl + F12
Това ще симулира завъртането на мобилния телефон.Бутоните са позиционирани според свойствата, например за бутона Извадете позиционираме вдясно от добавянето и подравнени с горния ръб на бутона за добавяне.
android: layout_toRightOf = "@ id / add" android: layout_alignTop = "@ id / add"В случай на полезен бутон, ние го подравняваме по отношение на първия бутон за добавяне и на последния бутон за умножение.
android: layout_toRightOf = "@ id / multiply" android: layout_alignTop = "@ id / add"След това ще добавим бутон с икона, за това изтегляме всяка икона от мрежата www.Icofinder.com. Ще копираме иконата в папката Ресурси / drawable-mdpi.
Добавяме кода за дизайн по -долу, отиваме в папката с оформление, отваряме файла main.xml.
Основната цел на относителните оформления, както казахме по -горе за дизайна е да се използва възможно най -малко вложени оформленияВ този пример на Калкулатор използвахме едно оформление с всички негови компоненти. Това ще позволи на приложението да бъде по -бързо. Влагането с различно оформление забавя и намалява производителността на приложението.
А Оформление Относителна йерархия обикновено Той ще използва по -малко количество оформление и ще има по -проста обработка от йерархията на LinearLayout. Предимството пред LinearLayout е, че трябва да създаваме нов LinearLayout всеки път, когато искаме да променим ориентацията на компонент или да създадем допълнителни изгледи. В резултат на това се препоръчва първо да използвате RelativeLayout за всяко оформление, което има сложност.
Какво още LinearLayout той е ориентиран само вертикално или хоризонтално по отношение на компонент, докато Layout Relative има много повече опции. Ако сте харесали и служили на този урок, следвайте ме!Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка