Как создать макет кривой в Android? - PullRequest
0 голосов
/ 26 июля 2011

Я хочу создать макет кривой, как Сен хочет здесь Как создать этот макет?

Здесь, в месте всплывающего окна, мне нужны кнопки, здесь нужно переместить макет как галерею?

Пожалуйста, предложите мне.Спасибо

Ответы [ 2 ]

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

Хорошо, для чего бы это ни стоило, мой подход будет состоять в том, чтобы создать пользовательский макет, возможно, с расширением AbsoluteLayout.Вам придется запросить размеры экрана, а затем вы можете создать Path или EllipticCurve в макете, который наилучшим образом соответствует размерам экрана.Затем вы можете определить, где на кривой (или смещении от кривой) вы хотите расположить графику или кнопки.Вам также нужно будет создать пользовательский детектор жестов, расширив SimpleOnGesturreListener так, чтобы действие броска выполняло то, что вы хотите, например, анимация одного или нескольких или всех объектов на кривой.Это, очевидно, только отправная точка, но она должна помочь вам начать, и как только вы попробуете и запустите ее, вы увидите проблемы или поведение, которые необходимо скорректировать.Удачи с ним.

Редактировать: Вы можете сделать его более универсальным, если сможете передать форму, например, кривую, окружность и т. Д., А затем заставить ее расположить свои кнопки вдоль путиформа.

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

См. этот ответ на вопрос макет с кнопками по кругу .Он предоставляет метод для построения координат XY в макете.

РЕДАКТИРОВАТЬ 28.07.2011: макет второй ответ до с кнопками в круге не включаетXML.@Shubh попросил об этом в комментариях ниже, так что я собрал это:

<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
    <FrameLayout 
        android:layout_width="130dp"
        android:layout_height="85dp"
        android:background="#FFCC0000">
        <Button 
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_gravity="right|bottom"
        />
    </FrameLayout>  
    <FrameLayout 
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:background="#FFCCCC00">
        <Button 
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_gravity="right|bottom"
        />
    </FrameLayout>  
    <FrameLayout 
        android:layout_width="85dp"
        android:layout_height="130dp">
        <Button 
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:layout_gravity="right|bottom"
        />
    </FrameLayout>  
</RelativeLayout>

enter image description here

...