Coloque una galería en un GridView con una columna y un tamaño de columna establecidos para llenar la vista primaria (o algo por el estilo). Coloque una galería en GridView y establezca su altura en LayoutParams a la altura de los drawables/views que desee ocupar. Todo lo que necesita hacer entonces es cuando una galería se mueve para mover todas las demás en la vista de cuadrícula. Publicaré el código a continuación. Nota: el código que hice es una prueba de concepto que funciona, solo lo probé en mi teléfono. Como tal, sin embargo, no es llamativo. Mientras continúo trabajando en ello, puedo actualizar el código para que se vea mejor.
~ Aedón :)
public class Test extends Activity {
/** Called when the activity is first created. */
GridView gv;
Gallery g[] = new Gallery[3];
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gv = (GridView) findViewById(R.id.gridview);
gv.setAdapter(new GAdapter());
for (int i = 0; i < g.length; i++) {
g[i] = new Gallery(this);
g[i].setAdapter(new GGAdapter());
g[i].setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_UP) {
for (int j = 0; j < g.length; j++) {
g[j].setSelection(((AdapterView) arg0)
.getSelectedItemPosition());
}
}
return false;
}
});
}
}
private class GAdapter extends BaseAdapter {
public GAdapter() {
}
@Override
public int getCount() {
return g.length;
}
@Override
public Object getItem(int pos) {
return pos;
}
@Override
public long getItemId(int pos) {
return pos;
}
@Override
public View getView(final int pos, View convertView, ViewGroup parent) {
g[pos].setLayoutParams(new GridView.LayoutParams(gv.getWidth(), gv
.getHeight()));
return g[pos];
}
}
private class GGAdapter extends BaseAdapter {
int[] images = new int[] { R.drawable.icon, R.drawable.icon,
R.drawable.icon };
public GGAdapter() {
}
@Override
public int getCount() {
return images.length;
}
@Override
public Object getItem(int pos) {
return pos;
}
@Override
public long getItemId(int pos) {
return pos;
}
@Override
public View getView(final int pos, View convertView, ViewGroup parent) {
ImageView mIV = new ImageView(Test.this);
mIV.setBackgroundResource(images[pos]);
mIV.setLayoutParams(new Gallery.LayoutParams(gv.getWidth(), gv
.getHeight()/3));
return mIV;
}
}
}
y mi archivo xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<GridView
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="1"
android:verticalSpacing="10dp" />
</LinearLayout>
he intentado pero parece GridView no admite desplazamiento horizontal: http: //stackoverflow.com/questions/ 2997818/gridview-with-horizontal-scroll –