По словам chRyNaN, вы можете сделать это с помощью GridView, который будет выглядеть как картинная галерея. Вот краткий пример GridView в XML с некоторыми полезными атрибутами вы можете посмотреть в случае необходимости:
<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" />
Вы должны использовать адаптер для заполнения контента. Он очень похож на ListViews. Адаптер раздувает макет и устанавливает его в ячейку сетки. Вот пример:
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;
}
}
Затем, вы можете иметь активность, которая выглядит следующим образом:
@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
}
});
}
Это просто пример. Вы можете заполнить свой ImageView чертежами, URL-адресами и т. Д.
Используйте ViewGroup, который использует адаптер для заполнения его дочерними представлениями. Посмотрите на GridView. – chRyNaN