2012-06-29 17 views
7

Jestem nowy w rozwoju Androida. Chcę ustawić margines & dopełnienie w Xml, a nie w dp lub px, ale w procentach. Czy jest jakiś sposób to zrobić?Margin/Padding w procentach w XML

+0

Hej myślę, że to nie jest możliwe [TUTAJ] (http://stackoverflow.com/questions/5996571/android-how-do-i-set-a-percentage-padding-margin-so-edittext-has-10-margin-on-e) – LuminiousAndroid

Odpowiedz

5

nie jest możliwe, choć lepiej to zrobić poprzez szerokość i wysokość ekranu jak poniżej w kodzie Java i

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth(); 
int height = display.getHeight(); 

następnie obliczyć margines od rozmiaru ekranu i ustaw go przez

setmargin(int x) //method of view/layout. 

w ten sposób można ustawić margines w zależności od rozmiaru ekranu, który nie jest ustalony dla wszystkich ekranów, i zasadniczo jest jak ustawienie w procentach, ale z kodu Java.

+1

Używanie getWidth() i getHeight() jest przestarzałe na poziomie interfejsu API 13+. http://developer.android.com/reference/android/view/Display.html. Zamiast tego użyj getSize (point). – maraci

+1

@maraci sprawdź inną odpowiedź dla twojego problemu Link >> http://stackoverflow.com/a/11483404/519718 – AAnkit

0

Jeśli próbujesz udostępnić szerokość ekranu między elementami sterującymi w procentach. Najlepszym sposobem na zrobienie tego w Androidzie jest użycie dla nich właściwości weight. Sprawdź poniższy adres URL, aby uzyskać więcej informacji.

Android Layout Paramas guide

pozdrowienia, Aqif Hamid

0

Stało się możliwe dzięki Guidelines wprowadzonym w ConstraintLayout.

Oto przykład TextView umieszczone na 60% szerokości ekranu i 25% wysokości ekranu:

Layout Editor

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <TextView 
     android:id="@+id/textView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="TextView" 
     app:layout_constraintLeft_toLeftOf="@+id/guideline1" 
     app:layout_constraintTop_toTopOf="@+id/guideline2" /> 

    <android.support.constraint.Guideline 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/guideline1" 
     android:orientation="vertical" 
     app:layout_constraintGuide_percent="0.6" /> 

    <android.support.constraint.Guideline 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/guideline2" 
     android:orientation="horizontal" 
     app:layout_constraintGuide_percent="0.25" /> 

</android.support.constraint.ConstraintLayout>