6

Trong ứng dụng của tôi, tôi phải triển khai hoạt động máy ảnh gốc nơi tôi phải khởi chạy máy ảnh và chụp ảnh.Android - Chụp ảnh

Cụ thể, ứng dụng của tôi chứa, một TextView (ở trên cùng) để hiển thị tên hoạt động và một nút (ở dưới) và ở khu vực giữa màn hình, xem trước máy ảnh sẽ được xem..Khi người dùng nhấp vào nút đó , Snaps sẽ được nhấp và hiển thị nó thành Imageview của một hoạt động khác.

Tôi biết rằng các phương pháp sau đây được sử dụng:

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
startActivityForResult(intent, 0); 

Nhưng phương pháp này nếu tôi được sử dụng sau đó TextView của tôi và nút xem không được hiển thị.

(Xin vui lòng lưu ý rằng: Tôi đang sử dụng Android SDK 1.5 với HTC Hero)

pls giúp tôi bằng cách gợi ý của bất kỳ bài viết, trang web, hoặc pdf.

thanx, Paresh

Trả lời

9

Nếu bạn đang cố gắng sử dụng máy ảnh tự nhiên, một khi máy ảnh có nguồn gốc được gọi là nó sẽ kiểm soát tầm nhìn của bạn. Tuy nhiên nếu bạn muốn thực hiện máy ảnh của riêng mình, thì bố cục như vậy sẽ là có thể.Một số ví dụ tốt có thể được tìm thấy ở đây:

Goodluck!

+0

Tìm kiếm ... cuối cùng tôi phải triển khai ứng dụng Camera theo cách liên kết thứ 2 –

+0

thanx cho câu trả lời có giá trị .. nhưng hãy cho tôi biết kích thước tối đa có thể chụp với mục đích IMAGE_CAPTURE là gì? –

+0

Bạn có thể nhận được chúng đầy đủ kích thước, nhưng bạn có thể không. Tôi chạy vào cùng một vấn đề, nhận được hình ảnh trở lại trong một hình ảnh nhỏ hơn họ nên tôi đoán. Về lý thuyết, bạn sẽ có thể nhận bitmap thông qua đường dẫn mà bạn chỉ định về mục đích. Tuy nhiên, tôi có thể truy xuất phiên bản lớn hơn thông qua: \t \t \t \t Uri pic = Uri.parse (data.toURI()); \t \t \t \t Bitmap bm = Media.getBitmap (getContentResolver(), pic); trong phương thức onActivityResult. Hi vọng điêu nay co ich. – ninjasense

4

Tất cả các hướng dẫn đang ở javadoc của android.hardware.Camera tại http://developer.android.com/reference/android/hardware/Camera.html:

  1. Lấy một thể hiện của máy ảnh từ open().
  2. Nhận cài đặt hiện tại (mặc định) bằng getParameters().
  3. Nếu cần, hãy sửa đổi đối tượng Camera.Parameters trả về và setParameters gọi (Camera.Parameters).
  4. Nếu muốn, hãy gọi setDisplayOrientation (int).
  5. Quan trọng: Vượt qua SurfaceHolder được khởi tạo đầy đủ để đặtPreviewDisplay (SurfaceHolder). Không có bề mặt, máy ảnh sẽ không thể bắt đầu xem trước.
  6. Quan trọng: Gọi startPreview() để bắt đầu cập nhật bề mặt xem trước. Xem trước phải được bắt đầu trước khi bạn có thể chụp ảnh.
  7. Khi bạn muốn, hãy gọi takePicture (Camera.ShutterCallback, Camera.PictureCallback, Camera.PictureCallback, Camera.PictureCallback) để chụp ảnh. Đợi các cuộc gọi lại để cung cấp dữ liệu hình ảnh thực tế.
  8. Sau khi chụp ảnh, màn hình xem trước sẽ dừng lại. Để chụp thêm ảnh, trước tiên hãy gọi lại startPreview().
  9. Dừng cuộc gọiPreview() để ngừng cập nhật bề mặt xem trước.
  10. Quan trọng: Gọi bản phát hành() để nhả camera để sử dụng cho các ứng dụng khác. Các ứng dụng sẽ phát hành máy ảnh ngay lập tức trong onPause() (và mở lại() nó trong onResume()).

    Các SurfaceHolder được ususally thực hiện sử dụng SurfaceView

+0

thanx cho câu trả lời .. tôi đã đọc xuống bài viết này nhưng không biết làm thế nào để tôi thực hiện nó. –

Các vấn đề liên quan