0

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

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

+0

@ prolink007, если думаете, что вы не можете знать, если ответ полезны для меня. Может быть, если я не дам +1, возможно, это не полезно. Точно так же я не даю -1, когда человек дает мне нерелевантный ответ. –

ответ

1

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

+0

Mimminito, но количество моих заметок не фиксировано, поэтому у меня будет процедура рисовать новые заметки на экране для каждой новой заметки ?? –

+1

Это то, что вам нужно было бы разработать. Просто используйте метод, который создает новую заметку и отображает ее на экране. Вы должны посмотреть, как работает Android Canvas, и методы OpenGL. – Mimminito

2

Что-то вроде этого:

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>