Algo zur "hübschen" Anordnung von Bildern gesucht

20/05/2011 - 12:19 von Ulrich Korndoerfer | Report spam
Ich steh grad auf dem Schlauch, vielleicht fàllt Euch ja was ein:

Thumbnails in Containern gleicher Größe sollen angezeigt werden. Die
maximal zur Verfügung stehende Anzeigeflàche, gemessen in Spalten und
Zeilen, ist bekannt: MaxRows und MaxCols.

Der Bildschirm bzw. das Anzeigeformular ist also maximal so groß, daß in
einer Reihe nebeneinander MaxCols Container angezeigt werden können und
maximal MaxRows Reihen angezeigt werden können.

Es geht darum, beim Start des Anzeigeformulars in Abhàngigkeit von der
anzuzeigenden Anzahl von Containern eine "hübsche" Größe für das
Anzeigeformular festzulegen.

Sollen mehr oder genau MaxCols * MaxRows Container angezeigt werden,
setze ich die Größe des Anzeigeformulars einfach auf die Maximalwerte.
Das ist einfach.

Sollen aber weniger als MaxCols * MaxRows Container angezeigt werden,
kann das Anzeigeformular ja alle Container gleichzeitig anzeigen. Es
geht mir darum, diese Anzahl an Container einigermassen ausgewogen auf
der zur Verfügung stehenden Flàche zu verteilen.

Mein bisheriger Algo geht so vor:

- primàr wird die Breite auf MaxCols gesetzt und alle Container werden
in Reihen von MaxCols Breite angezeigt.
- Sollte sich dabei ergeben, daß nur 1 Reihe zur Anzeige nötig ist, wird
die Anzahl der Spalten auf die Anzahl der anzuzeigenden Container gesetzt.

Das liefert bei großen Containern (mit Thumbs mit zB 256 Pixel maximaler
Kantenlànge) einigermassen visuell ertràgliche Ergebnisse.

Haben die Thumbs aber zB nur 16 Pixel maximale Kantenlànge, passen in
eine Reihe so ca. maximal 50 Stück. Das führt dann dazu, daß zB bei 49
anzuzeigenden Thumbs ich ein Fenster bekomme, welches sehr breit ist, in
einer Reihe alle 49 Container anzeigt, aber nur 1 Container hoch ist.
Das ergibt dann ein Anzeigefenster, welches als schmaler Streifen
erscheint. Besser wàre es hier, zB auf 7 x 7 zu verteilen, das
Anzeigefenster wàre dann quadratisch, oder noch besser das
Anzeigefenster mit einem Höhe zu Breite Verhàltnis wie dem des
Bildschirms anzuzeigen und die Thumbs dementsprechend zu verteilen.

Die maximale Kantenlànge eines Containers ist die Hàlfte der
Bildschirmbreite bzw. Höhe. Bei einem Container dieser Größe würde dann
nur genau 1 Container angezeigt werden können. Die minimale Kantenlànge
liegt bei 36 Pixeln (16 Pixel für den Thumb, 8 Pixel Container-Container
Abstand und 12 Pixel Containerflàche um den Thumb herum).

Any ideas?

Ulrich Korndoerfer

VB tips, helpers, solutions -> http://www.prosource.de/Downloads/
MS Newsgruppen Alternativen -> http://www.prosource.de/ms-ng-umzug.html
 

Lesen sie die antworten

#1 Wolfgang Wolf
20/05/2011 - 12:49 | Warnen spam
Am 20.05.2011 12:19, schrieb Ulrich Korndoerfer:
Ich steh grad auf dem Schlauch, vielleicht fàllt Euch ja was ein:



[...]

Any ideas?




Definiere doch eine zusàtzliche Eigenschaft welche das optimale
Cols/Rows-Verhàltnis ermittelt, so was wie einen "goldenen Schnitt".
Dieser làsst dann die MaxCols nicht beliebig groß werden, sondern sorgt
dafür, dass auch noch was für die Rows übrig bleibt. Das sorgt (gem.
griechischer Antike) für "Ästhetik und Harmonie" ;-)

Schönen Gruß
W. Wolf

Ähnliche fragen