Skip to content

Instantly share code, notes, and snippets.

@okiwicaksono
Created April 8, 2018 11:32
Show Gist options
  • Save okiwicaksono/35ca4706a62dcf426ea5c5a819d80621 to your computer and use it in GitHub Desktop.
Save okiwicaksono/35ca4706a62dcf426ea5c5a819d80621 to your computer and use it in GitHub Desktop.
This gist is about clustering consecutive image into a collage/collection
import java.lang.Math;
import java.util.*;
public class HelloCollage {
private static final String TEXT = "text";
private static final String IMAGE = "image";
public static void main(String[] args) {
ArrayList<Item> items = new ArrayList<>();
items.add(new Item("item0", TEXT));
items.add(new Item("item1", IMAGE));
items.add(new Item("item2", IMAGE));
items.add(new Item("item3", IMAGE));
items.add(new Item("item4", IMAGE));
items.add(new Item("item5", IMAGE));
items.add(new Item("item6", TEXT));
items.add(new Item("item7", IMAGE));
items.add(new Item("item8", IMAGE));
items.add(new Item("item9", TEXT));
ArrayList<String> hiddenItemIds = new ArrayList<>();
for (int i = 0; i < items.size(); i++) {
// codes below can be placed in adapter
Item item = items.get(i);
if (hiddenItemIds.contains(item.id)) {
System.out.println("hidden");
} else {
if (item.tipe.equals(IMAGE)) {
ArrayList<Item> collages = new ArrayList<>();
collages.add(item);
for (int j = i; j < items.size() - 1; j++) {
Item nextItem = items.get(j + 1);
if (nextItem.tipe.equals(IMAGE)) {
collages.add(nextItem);
} else {
break;
}
}
if (collages.size() > 3) {
// insert hidden items
for (int k = 1; k < collages.size(); k++) {
Item hiddenItem = collages.get(k);
hiddenItemIds.add(hiddenItem.id);
}
// show collage
System.out.println("collage");
} else {
System.out.println("image");
}
} else {
System.out.println("text");
}
}
}
}
}
class Item {
public String id;
public String tipe;
public Item(String id, String tipe) {
this.id = id;
this.tipe = tipe;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment