4 Stimmen

Wie kann man unter Android eine auflösungsunabhängige Kameravorschau erstellen?

Ich mache eine Android 1.6 App, die die Kamera des Telefons benutzt.

Um diese App auflösungsunabhängig zu machen, muss ich ein kompatibles Seitenverhältnis für die Vorschau der Kamera auf einem SurfaceLayout festlegen. In 1.6 sdk gibt es keine Möglichkeit, unterstützte Größen für die Kamera-Vorschau zu erhalten. Ist es möglich, ein 4:3 oder 3:2 Seitenverhältnis zu verwenden und erhalten keine Fehler whith, dass?

Andererseits brauche ich eine Möglichkeit, ein xml-Layout zu erstellen, das dieses Surfacelayout in diesem (unbekannten) Seitenverhältnis in jeder Auflösung darstellt. Ich nehme an, dass es nicht möglich ist, die SurfaceLayout-Größe zur Laufzeit zu ändern. Kann ich es mit "dp" Einheiten machen? Die andere Möglichkeit ist, dieses Layout programmatisch zu erstellen?

Es gibt einige Anwendungen wie Vignette oder die Android-Kamera-Anwendung mit einigen Tricks, um so etwas zu machen, wie schwarze Balken (Vignette) oder feste Tastenleiste, aber ich weiß nicht, wie man es in jeder Art von Auflösung zu tun.

Irgendwelche Ideen?

Merci !

6voto

Florent Vennetier Punkte 76

In 1.6 sdk gibt es keine Möglichkeit, unterstützte Größen für die Kameravorschau zu erhalten.

Es gibt sie. Sie können sie beim Parsen der preview-size-values Kamera-Parameter.

String supportedSizesString = parameters.get("preview-size-values");
List<Size> supportedSizes = new ArrayList<Size>();
if (supportedSizesString != null && supportedSizesString.length() > 0) {
    StringSplitter ss = new TextUtils.SimpleStringSplitter(',');
    ss.setString(supportedSizesString);
    for (String supportedSize : ss) {
        String[] dimentions = supportedSize.split("x");
        if (dimentions.length > 1) {
            Size size = mCamera.new Size(Integer.parseInt(dimentions[0]),
            Integer.parseInt(dimentions[1]));
            supportedSizes.add(size);
        }
    }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X