Ich habe ein Programm in Java geschrieben, das eine Bilddatei aufnimmt und das Bild manipuliert. Jetzt versuche ich auf die Kamera zuzugreifen, damit ich das Foto machen und es dem Bildverarbeitungsprogramm geben kann, aber ich weiß nicht, wie ich das machen soll. Ich habe die Informationen über die Kamera-Klasse gelesen und wie man um Erlaubnis bittet, aber ich weiß nicht, wie man das Foto wirklich macht. Wenn jemand irgendwelche Tipps hat, wo ich anfangen soll oder wenn er von einem guten Tutorial weiß, würde ich es sehr schätzen. Vielen Dank!Wie greife ich auf Android-Smartphones auf die Kamera zu?
Antwort
Google ist dein bester Freund, sind hier einige Tutorials:
How-To Program The Google Android Camera To Take Pictures
Take Picture from Camera Emulator
Zuerst bearbeiten Sie Ihre AndroidManifest.xml, fügen Sie die Kamera Erlaubnis :
<uses-permission android:name=”android.permission.CAMERA”/>
Kamera Dienst zu öffnen und zu schließen:
Camera camera = Camera.open();
//Do things with the camera
camera.release();
Sie Kameraeinstellungen festlegen können, zB:
Camera.Parameters parameters = camera.getParameters();
parameters.setPictureFormat(PixelFormat.JPEG);
camera.setParameters(parameters);
Um ein Bild zu nehmen:
private void takePicture() {
camera.takePicture(shutterCallback, rawCallback, jpegCallback);
}
ShutterCallback shutterCallback = new ShutterCallback() {
public void onShutter() {
// TODO Do something when the shutter closes.
}
};
PictureCallback rawCallback = new PictureCallback() {
public void onPictureTaken(byte[] _data, Camera _camera) {
// TODO Do something with the image RAW data.
}
};
PictureCallback jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] _data, Camera _camera) {
// TODO Do something with the image JPEG data.
}
};
Do Vergessen Sie nicht, das Layout der Kamera zu Ihrem Haupt-Layout-XML hinzuzufügen.
die wichtigste Methode ist:
Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() {
public void onPictureTaken(byte[] imageData, Camera c) {
}
};
Diese Methode wird aufgerufen, wenn ein Bild aufgenommen wird. Hier ist ein gutes Tutorial zu diesem Thema: http://www.brighthub.com/mobile/google-android/articles/43414.aspx
hmm ... oder vielleicht brauchen Sie diese:
Camera mCamera;
...
public void onClick(View arg0) {
mCamera.takePicture(null, mPictureCallback, mPictureCallback);
}
Hier ist ein weiteres Beispiel: http://snippets.dzone.com/posts/show/8683
gibt es viele Möglichkeiten, mit denen Sie können dies tun .... Einer der besseren Weg, die ich denke, ist die kurze und einfache ist auf Knopfdruck Sie können Aufruf Intellekt, die Ihre eingebaute Kamera-Ansicht öffnet ... hier ist der Beispielcode ...
public class CameraDemo extends Activity {
Button ButtonClick;
int CAMERA_PIC_REQUEST = 2;
int TAKE_PICTURE=0;
Camera camera;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ButtonClick =(Button) findViewById(R.id.Camera);
ButtonClick.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View view)
{
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == CAMERA_PIC_REQUEST)
{
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
ImageView image =(ImageView) findViewById(R.id.PhotoCaptured);
image.setImageBitmap(thumbnail);
}
else
{
Toast.makeText(demo.this, "Picture NOt taken", Toast.LENGTH_LONG);
}
}
}
.............................................. ................
Gehen Sie durch und wenn Sie irgendein Problem haben, fühlen Sie sich frei zu fragen ....
rakesh
Es gibt zwei Methoden Foto für Ihr Android-Anwendung nehmen
1) Mit Intent
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name
// start the image capture Intent
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
2) Erstellen einer individuellen Kamera-Aktivität. Dafür benötigen Sie folgende Schritte
* Detect and Access Camera
* Create a Preview Class
* Build a Preview Layout
* Capture and Save Files
* Release the Camera
Sie auch folgende Links verweisen:
http://developer.android.com/guide/topics/media/camera.html http://developer.android.com/reference/android/hardware/Camera.html
- 1. Wie greife ich auf die Kamera zu?
- 2. Wie greife ich auf RouteTable.Routes.MapHttpRoute zu?
- 3. Wie greife ich auf diese Variable zu?
- 4. Wie greife ich auf ng-Inhalte zu?
- 5. Wie greife ich auf Vorlagencache zu? - Django
- 6. Wie greife ich auf die Schlüssel eines NSMutableDictionary zu?
- 7. Wie greife ich hier auf die Array-Summe zu?
- 8. Wie greife ich auf die Klasse "WindowedApplication" in Actionscript zu?
- 9. Wie greife ich auf die Magento-Systemkonfiguration zu?
- 10. Wie greife ich direkt auf die magische magic-Funktion zu
- 11. Wie greife ich auf Video-Ausgabefunktionen auf iOS zu?
- 12. Wie greife ich auf die die Web-Site Administration Tool
- 13. Wie greife ich auf ListView vom Adapter
- 14. Wie greife ich aus meiner benutzerdefinierten Ansicht auf layout_height zu?
- 15. Wie greife ich auf mobile Datennutzungsstatistiken in Android zu?
- 16. Wie greife ich von IDLE auf den Befehlsverlauf zu?
- 17. Wie greife ich auf interne Mitglieder einer Gewerkschaft zu?
- 18. WPF-Datenbindung: Wie greife ich auf den Datenkontext "Eltern" zu?
- 19. Wie greife ich auf Microsoft.Owin.Security.xyz OnAuthenticated Kontext AddClaims Werte zu?
- 20. Evernote Windows SDK - Wie greife ich auf den UserStore zu?
- 21. Wie greife ich mit dem Winkelmesser auf ng-Rasterelemente zu?
- 22. Wie greife ich auf SourceGear-Webdienste mit SOAP :: Lite zu?
- 23. Wie greife ich auf Windows-Ereignisanzeige-Protokolldaten von Java zu
- 24. Wie greife ich über jQuery-Dialogfelder auf meinen Winkelbereich zu?
- 25. Wie greife ich auf spezielle Verzeichnisse in Windows zu?
- 26. Wie greife ich in Haskell auf den Graphics.Gloss-Ereignistyp zu?
- 27. Wie greife ich auf Felder von * mut libc :: FILE zu?
- 28. Wie greife ich auf eine Datenbank in Unity zu?
- 29. Wie greife ich auf diese Objekteigenschaft mit einem Bindestrichnamen zu?
- 30. Wie greife ich auf einen Eintrag in einem Seriendruckdokument zu?