所以我正在开发一个使用Android Studio的应用程序,我想基本上有3个布局。第一个是静态背景线性布局,只有一张背景图片。在上面,是另一个线性布局,它将具有“无”,并且在上面是一个不可见的网格布局,每个“盒子”有两个数字,行和列,并且使用它,我将知道放入的位置我的第二个线性布局(例如,如果我想向右上方移动一些东西,我将只放入位置0,0并将它放在该位置,但是在线性布局上,而不是网格布局。)
我已经制作了gridlayout,线性布局,这里是xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/map_backround"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/grassGreen"
android:gravity="center"
android:visibility="visible">
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:visibility="invisible"
app:srcCompat="@drawable/greenBackround" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/mapPosition">
<GridLayout
android:id="@+id/map_hardcore"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="4dp"
android:gravity="center"
android:horizontalSpacing="0dp"
android:numColumns="270"
android:stretchMode="columnWidth"
android:verticalSpacing="0dp"
android:visibility="invisible">
</GridLayout>
</LinearLayout>
</LinearLayout>
和baseAdapter。请记住,类Map基本上是一个继承Coordination的类,并且有一个2d坐标数组(创建一个2d坐标图),而坐标只是一个有2个整数的类,一个用于行,一个用于列,给我每个广场的ID。
public class gridViewHandler extends BaseAdapter
{
Context context;
private Map selectedMap;
private Coordination[][] position;
private int countLocations;
public gridViewHandler(Context context, Map selectedMap)
{
this.countLocations = 0;
this.context = context;
this.selectedMap = selectedMap;
this.position = selectedMap.getMapParams();
for(int i = 0; i < selectedMap.getColumns(); i++)
{
for(int a = 0; a < selectedMap.getRows(); a++)
{
countLocations++;
}
}
}
@Override
public int getCount()
{
return countLocations;
}
public int getColumnCount()
{
return position.length;
}
public int getRowCount()
{
return position[0].length;
}
public Object getItem(int colNum, int rowNum)
{
return position[colNum][rowNum];
}
@Override
public Object getItem(int i)
{
return null;
}
@Override
public long getItemId(int i)
{
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
return null;
}
}
最后,这就是我的“Main_Activity”的样子(我称之为游戏)
public class Game extends Activity {
private GridView defaultMap;
private Map map = new Map();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);
defaultMap = (GridView) this.findViewById(R.id.map_hardcore);
gridViewHandler gridAdapter = new gridViewHandler(Game.this, map);
defaultMap.setAdapter(gridAdapter);
}
}
所以,我真的不知道如何使用我已经制作的东西。我认为gridview已准备就绪,我需要做的就是创建两个线性布局,然后创建我插入gridview框(行,列)和项目的ID的函数,它将显示在该位置的线性布局。任何想法我如何实现这个?
我实现的目标是一个我将始终能够知道的地图,并控制每个物体的位置。