2013-08-21 18 views
10

Ý tưởng của tôi là có hai bề mặt. Một bề mặt mà sẽ giữ một hình ảnh (nói ImageSurgaceView) và bề mặt thứ hai nằm trên đầu trang của một trong những đầu tiên giữ các chú thích (nói AnnotationSurfaceView) như vòng tròn, hình chữ nhật, vv Bây giờ tôi phải bản đồ các quan điểm bề mặt sao cho chiều cao, chiều rộng giống nhau và hơn nữa, cả hai bề mặt xem nên di chuyển trên kéo tức là chia sẻ các sự kiện liên lạc. Để chính xác, khi tôi di chuyển hình ảnh lên các chú thích cũng sẽ di chuyển lên.Android: Có thể có hai surfaceview trên đầu trang của nhau không?

Bây giờ, tôi không chắc liệu điều này có thể thực hiện được trong Android hay không. Bất kỳ ai có thể nói hoặc chia sẻ một số thông tin về điều này. Tôi không có bất kỳ ý tưởng thực hiện cho điều này và do đó tôi không có bất kỳ mã cụ thể. Hơn nữa, tôi không thể tìm thấy bất cứ điều gì tương tự.

Cảm ơn bạn đã trợ giúp.

Trả lời

20

Có, điều này là có thể. Bạn có thể thêm cả hai số SurfaceView s làm con cái của FrameLayout. Bạn cũng sẽ muốn gọi số setZOrderMediaOverlay trên một hoặc cả hai số SufaceView của bạn để chỉ định cách chúng được xếp lớp.

Hơn nữa, đây có thể là thuật toán đồ họa chuyên sâu mà bạn mô tả. Cân nhắc thêm AndroidManifest.xmlứng dụng thuộc tính android:hardwareAccelerated="true".

Cuối cùng, chỉ cần thiết lập tùy chỉnh OnTouchListener để xử lý sự kiện kéo. Sử dụng MotionEvent.getRawX()MotionEvent.getRawY() để có được điểm tiếp xúc và sử dụng điều này để thao tác canvas.

+0

Tôi không thể thêm cả số lần xem lướt sóng vào framelayout. Nó nói, tôi phải gọi ** removeView() ** trước khi thêm một đứa trẻ khác. Ngoài ra, trong khi thiết lập ** android: HardwareEnabled = "true" **, tôi nhận được một lỗi khác có nội dung ** error: Không tìm thấy mã định danh tài nguyên cho thuộc tính 'HardwareEnabled' trong gói 'android' **. – Shobhit

+0

@Shobhit, thuộc tính là lỗi đánh máy, mà tôi đã sửa. Hãy thử 'android: hardwareAccelerated =" true "'. Đối với vấn đề đầu tiên của bạn - điều này có vẻ như bạn đang sử dụng 'ScrollView' thay thế. Bạn có thể thêm bố cục của mình ('XML' hoặc chương trình) vào câu hỏi không? – Phil

+0

hey Phil, đã có một lỗi nhỏ và bây giờ tôi đã có thể nhận được rằng làm việc nhưng chỉ một phần. Tôi vẫn phải triển khai OnTouchListener tùy chỉnh. Bạn có cơ hội nào có bất kỳ liên kết nào đến mã ví dụ không? Nếu có, bạn có thể chia sẻ không? Tôi sẽ đăng mã hiện tại làm câu trả lời của tôi. Cảm ơn! :) – Shobhit