Макет андроид активности - PullRequest
0 голосов
/ 28 марта 2012

Я бы знал, есть ли возможность создать новое действие Android с другим макетом, отличным от линейного макета, макета таблицы, относительного макета и т. Д. ...
Моя цель - создать действие, в котором Android загружает некоторыеобъект (например, заметки) и поместите эти заметки в упражнение, чтобы у конечного пользователя появилась иллюзия, что на экране планшета будет много постов.

Результат, которого я хотел бы достичь, очень похож на компоновку компьютера, где у вас много значков, и вы можете вставлять, удалять и перемещать этот значок, представляющий мои заметки.
Я думаю, чтоиспользовать сетку, подобную этой http://developer.android.com/guide/tutorials/views/hello-gridview.html, но с таким типом макета я могу перемещаться туда, куда мне нужны мои значки ??

Ответы [ 2 ]

2 голосов
/ 28 марта 2012

Примерно так:

public class MyActivity extends Activity {

    private RelativeLayout _mainLayout;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        _mainLayout = (RelativeLayout) findViewById(R.id.canvas);
        addChild(50, 50, 150, 150, Color.RED);
        addChild(150, 250, 50, 50, Color.GREEN);
        addChild(200, 200, 100, 100, Color.BLUE);
    }

    public void addChild(int centerX, int centerY, int width, int height, int color) {
        int X = centerX - width / 2;
        int Y = centerY - height / 2;

        RelativeLayout child = new RelativeLayout(this);
        child.setBackgroundColor(color);
        RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(width, height);
        layoutParams.leftMargin = X;
        layoutParams.topMargin = Y;
        layoutParams.bottomMargin = -250;
        layoutParams.rightMargin = -250;
        child.setLayoutParams(layoutParams);
        _mainLayout.addView(child);
    }
}

main.xml:

<?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">

<RelativeLayout
              android:id="@+id/canvas"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:background="@drawable/bg0large"
        >
</RelativeLayout>

1 голос
/ 28 марта 2012

Вам нужно будет нарисовать ваши виды вручную на экране, вероятно, используя что-то вроде Canvas .Это позволит вам рисовать ваши взгляды там, где вам нравится.

...