Wie chRyNaN sagte, können Sie dies mit einem Gridview tun, die wie eine Bildergalerie aussehen wird. Hier ist ein kurzes Beispiel der Gridview in XML mit einigen nützlichen Attributen, die Sie suchen in können bei Bedarf:
<GridView android:id="@+id/grid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchMode="columnWidth"
android:numColumns="auto_fit"
android:gravity="center"
android:horizontalSpacing="10dp"
android:verticalSpacing="10dp"
android:columnWidth="100dp" />
Sie haben einen Adapter verwenden, um den Inhalt zu füllen. Es funktioniert sehr ähnlich wie ListViews. Der Adapter bläst ein Layout auf und setzt es in eine Zelle des Rasters. Hier ein Beispiel:
public class GalleryAdapter extends ArrayAdapter<String> {
// List of URIs of the images to be displayed
private List<String> values;
public GalleryAdapter(Context context, List<String> values){
super(context, -1, values);
this.values = values;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Check if an existing view is being reused, otherwise inflate the view
if (convertView == null)
convertView = LayoutInflater.from(getContext()).inflate(R.layout.gallery_item, parent, false);
ImageView imgView = (ImageView) convertView.findViewById(R.id.imageview);
String currentSource = values.get(position);
imgView.setImageURI(Uri.parse(currentSource));
return convertView;
}
}
Dann können Sie eine Aktivität haben, die wie folgt aussieht:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act_photo_gallery);
// Get grid
GridView grid = (GridView) findViewById(R.id.bma_gallery_grid);
List<String> src = new ArrayList<>();
// Add Strings to src here
// Create and set adapter
GalleryAdapter adapter = new GalleryAdapter(this, src);
grid.setAdapter(adapter);
// Set OnItemClickListener
grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Do stuff
}
});
}
Dies ist nur ein Beispiel. Sie können Ihre ImageView mit Zeichenelementen, URLs usw. füllen.
Verwenden Sie eine ViewGroup, die einen Adapter verwendet, um sie mit untergeordneten Ansichten zu füllen. Schau in GridView. – chRyNaN