макет с кнопками по кругу? - PullRequest
3 голосов
/ 26 июля 2011

Это вызов для всех .. Как мы можем поместить кнопки в относительную или линейную разметку или любую другую разметку в круг, как на этом изображенииМы можем сделать это с помощью XML или с помощью кода.Пожалуйста, помогите.

Заранее спасибо

Ответы [ 3 ]

9 голосов
/ 26 июля 2011

Этот метод является компоновочным эквивалентом построения произвольных координат X и Y.

Особенности:

  • Дочерние объекты автоматически центрируются в RelativeLayout независимо от того, используете ли вы его как макет верхнего уровня или встраиваете его в другой.
  • Для N изображений ваш макет содержит только N + 1 просмотров.

Этот пример макета показывает, как разместить ImageView в каждом квадранте XY-сетки с началом координат в центре:

eclipse screenshot

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <ImageView 
        android:id="@+id/center"
        android:layout_width="0dp" 
        android:layout_height="0dp"
        android:layout_centerInParent="true"
        android:background="#FFFF0000"
    />
    <ImageView 
        android:layout_width="40dp" 
        android:layout_height="40dp"
        android:background="#FF00FF00"
        android:layout_above="@id/center"
        android:layout_toLeftOf="@id/center"
        android:layout_marginRight="100dp"
        android:layout_marginBottom="25dp"
    />
    <ImageView 
        android:layout_width="40dp" 
        android:layout_height="40dp"
        android:background="#FF00FF00"
        android:layout_below="@id/center"
        android:layout_toLeftOf="@id/center"
        android:layout_marginRight="100dp"
        android:layout_marginTop="25dp"
    />
    <ImageView 
        android:layout_width="40dp" 
        android:layout_height="40dp"
        android:background="#FF00FF00"
        android:layout_above="@id/center"
        android:layout_toRightOf="@id/center"
        android:layout_marginLeft="100dp"
        android:layout_marginBottom="25dp"
    />
    <ImageView 
        android:layout_width="40dp" 
        android:layout_height="40dp"
        android:background="#FF00FF00"
        android:layout_below="@id/center"
        android:layout_toRightOf="@id/center"
        android:layout_marginLeft="100dp"
        android:layout_marginTop="25dp"
    />
</RelativeLayout>
1 голос
/ 14 августа 2013

Если вы скопировали и вставили образец кода из выбранного ответа, вы используете Android Studio, и он не работает, вот решение: Замените @ id / center на @ + id / center

Надеюсь, это кому-нибудь поможет. Поскольку моя репутация меньше 50, я не могу добавить это как комментарий.

1 голос
/ 26 июля 2011

Не думаю, что это можно сделать с макетом, отличным от AbsoluteLayout .Как именно это должно быть сделано, вы должны попробовать сами, потому что это немного сложно, но возможно!

enter image description here

Это то, что я имел в виду и, кстати, не уверенна 100%, но, приложив некоторые усилия, вы можете настроить его на пропорциональный - чтобы передавать разные разрешения.

...