2016-01-16 3 views
0

Я хочу настроить свой дизайн приложения на любые устройства Android, я уже пытался установить свойства размера элементов в процентах, но я получаю в trub с таким образом, поэтому я пробовал этот код: (set ширина и высота по размеру экрана устройства/5)android change button размер в зависимости от размера экрана устройства

public void fixButtonSizes(){ 
    Display display = getWindowManager().getDefaultDisplay(); 
    Point size = new Point(); 
    display.getSize(size); 
    int width1 = size.x; 
    int height1 = size.y; 
    Button button1vid = (Button) findViewById(R.id.button1); 
    button1vid.setHeight(height1/5); 
    button1vid.setWidth(width1/5); 
} 

и `ы не работает для меня слишком

+0

Может быть, это поможет вам ..http: //stackoverflow.com/questions/17944910/set-the-height-of-imageview-according-to-screen-from-the-layout – Nik

+0

не работает для me – bill

ответ

0

Чтобы использовать процентное значение ширины или высоты в андроида, вы должны обернуть элементы внутри LinearLayout и использовать layout_weight свойство элемента. Также вам нужно поставить 0dp в layout_width или layout_width в соответствии с размером, который вы хотите.

Чтобы вычислить, какую высоту или ширину элемент будет иметь, вы должны суммировать все layout_weight элементов в макете и разделить на вес элемента.

Например, если вы хотите создать 5 кнопок горизонтально с той же ширины, вы можете использовать это:

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

    <Button 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Button 1"/> 

    <Button 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Button 2"/> 

    <Button 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Button 3"/> 

    <Button 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Button 4"/> 

    <Button 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Button 5"/> 

</LinearLayout> 

Я надеюсь, что это прояснит вам.

+0

У меня есть проблема с этой строкой кода: android: layout_width = "0dp", он говорит, что он будет невидимым – bill

+0

вы завернули все виды внутри 'LinearLayout' и добавили' android: layout_weight = "1" ' ?? – sergiomse

+0

да, я хочу сказать, что у меня больше linearlayout, но этот конкретный определяется, как вы сказали мне, чтобы определить – bill