Wenn es durch die Auflösung des Android-Geräts Bildschirm bestimmt wird, gibt es eine Möglichkeit, den Wert dieser Auflösung programmatisch zu erhalten?Wie kann ich die Standardgröße (in Pixel) eines Fotos, das mit einer Android-Kamera aufgenommen wird, vor der Aufnahme ermitteln?
Antwort
bestimmtWenn es durch die Auflösung der Android-Gerät Bildschirm
Nr
Wie kann ich die Standardgröße (in Pixel) eines Fotos erhalten die wird durch Android Kamera
erfasst werden Es gibt keine "def ault Größe ... eines Fotos ". Wenn Sie die APIs oder selbst verwenden, müssen Sie unter den verfügbaren Auflösungen die gewünschte Auflösung angeben.
Wenn Sie ACTION_IMAGE_CAPTURE
verwenden, wird die Auflösung zum Teil darauf basieren, ob Sie EXTRA_OUTPUT
übergeben oder nicht, aber ansonsten ist die Kamera-App. Es gibt Tausende von Android-Gerätemodellen, die mit hunderten verschiedener vorinstallierter Kamera-Apps ausgeliefert werden, und über Vertriebskanäle wie den Play Store gibt es viele weitere Kamera-Apps. Sie werden die APIs android.hardware.Camera
oder verwenden, und sie werden entscheiden, welche Auflösung sie verwenden möchten, mit welchem Algorithmus sie auch wollen.
Sie können
String pickedImagePath = "path/of/the/selected/file";
BitmapFactory.Options bitMapOption=new BitmapFactory.Options();
bitMapOption.inJustDecodeBounds=true;
BitmapFactory.decodeFile(pickedImagePath, bitMapOption);
int imageWidth=bitMapOption.outWidth;
int imageHeight=bitMapOption.outHeight;
-Update wie folgt tun:
Sie Display-Metriken können Sie Ihren Bildschirm mit
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;
Hinweis zu erhalten: Die Auflösung des Bildschirms und Auflösung der Kamera kann nicht gleich sein. Bitte beachten Sie die answer here.
Ermitteln Sie die Bildschirmgröße mithilfe des folgenden Snippets. this
bedeutet den aktuellen Aktivitätskontext.
WindowManager windowManager = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
DisplayMetrics displayMetrics = new DisplayMetrics();
display.getMetrics(displayMetrics);
int screenWidth = displayMetrics.widthPixels;
int screenHeight = displayMetrics.heightPixels;
Vielen Dank, aber es tut mir leid, vielleicht war meine Frage nicht klar genug. Ich habe gerade die Frage-Anweisung bearbeitet. Ich wollte fragen, dass ich die Auflösung brauche, noch bevor das Bild aufgenommen wird. Was ich eigentlich möchte, ist die Anzahl der Pixel (d. H. Breite und Höhe des Bildschirms, die den Live-Kamera-Feed in Pixeln zeigen) des Live-Kamera-Feeds? – Solace
Sie wollen die Bildschirmbreite und -höhe in Pixeln bekommen, bin ich richtig? – SaravInfern
Ja, wenn die Breite und Höhe eines Kamerarahmens bei einer Live-Kameraführung im Vollbildmodus der Bildschirmbreite und -höhe entspricht? – Solace