Tôi có một ứng dụng javascript chạy trong canvas. Nó hoạt động trên Android, ngoại trừ khi bạn kéo trên màn hình với ngón tay của bạn toàn bộ trang web bị đóng băng. Có cách nào để ngăn chặn điều này xảy ra không?Android canvas đóng băng
Trả lời
Tùy thuộc vào những gì bạn có trong mã của mình, có khả năng nhiều quá trình xử lý diễn ra khi ai đó kéo ngón tay của họ (hoặc chuột) trên canvas. Ví dụ, trong các ứng dụng vẽ, vị trí XY của tiêu điểm của người dùng được chụp mỗi lần nó thay đổi pixel. Nếu mã bên trong mỗi sự kiện nhỏ bé này không phải là ánh sáng, khách hàng sẽ treo trong khi nó cố gắng bắt kịp.
Không có mã bổ sung nào chạy khi kéo ngón tay. Mã tiếp tục chạy như bình thường, nó chỉ không vẽ lại canvas. – Joel
Tùy thuộc vào những gì bạn thực hiện trong mã của mình trên MotionEvent.ACTION_DOWN
và MOVE ... bạn nên thường xuyên vẽ canvas. Thói quen đó không nên bị gián đoạn bởi bất kỳ thói quen nào khác.
Không chắc chắn nếu điều này khắc phục sự cố của bạn hoặc cung cấp bất kỳ thông tin chi tiết nào, nhưng ở đây sẽ xảy ra;
Ví dụ;
protected void onDraw(Canvas canvas) {
// fills the canvas with black
canvas.drawColor(Color.BLACK);
// draw some stuff on it
backGnd.draw(canvas);
basket.draw(canvas);
for (int i = 0; i < AppleList.size();i++){
AppleList.get(i).draw(canvas);
}
}
Chuyển động sẽ được xử lý như sau (lưu ý nhận xét trong mã!);
@Override
public boolean onTouchEvent(MotionEvent event) {
if (!isTouchDisabled){
if (event.getAction() == MotionEvent.ACTION_DOWN) {
// add code to pass the action down to the objects
basket.handleActionDown((int)event.getX(), (int)event.getY());
}
if (event.getAction() == MotionEvent.ACTION_MOVE) {
// the gestures
// only pass the move events to the objects that were previously touched (so action down entails checking for
// the location of the touch AND the object.. if they match, you set isTouched to true.
if (basket.isTouched()) {
// the basket was picked up and is being dragged
basket.setX((int)event.getX());
basket.setY((int)event.getY());
}
}
if (event.getAction() == MotionEvent.ACTION_UP) {
// Check buttons
if (btnMoreFruit.isTouched()){
btnMoreFruit.handleActionUp((int) event.getX(), (int) event.getY());
btnMoreFruit.setTouched(false);
}
if (btnLessFruit.isTouched()){
btnLessFruit.handleActionUp(this.getContext(), (int)event.getX(), (int)event.getY());
btnLessFruit.setTouched(false);
}
}
}
Tôi đang cố gắng viết Javascript để chạy trong trình duyệt Android. Trừ khi tôi thực sự thiếu một cái gì đó, bạn đã cho tôi java để chạy trong một ứng dụng Android. Vấn đề sẽ khá dễ giải quyết nếu tôi viết một ứng dụng. – Joel
Ah .. Xin lỗi, không hiểu. Không thể giúp bạn ở đó. Bạn đã thử các trình duyệt khác nhau chưa? (FF, Opera, Dolphin) chỉ để kiểm tra và xác định nguyên nhân gốc rễ? –
Tôi đã thử những gì tôi có thể trên lửa kindle của tôi, không có gì dường như làm việc đầy đủ, mặc dù một số đã tốt hơn so với những người khác. Tôi không nghĩ rằng nó có thể khắc phục được vấn đề, nhưng tôi nghĩ tôi sẽ từ bỏ một số tiền thưởng để tìm ra nếu có ai đó có một giải pháp ma thuật. Nó thực sự là một vấn đề lớn đối với các ứng dụng web. – Joel
Cách bạn thể hiện câu hỏi của mình không hiển thị khá nhiều thông tin.
ứng dụng web có một số hạn chế để có được tính năng đầy đủ của Android.
Quy tắc của bạn Tôi có ứng dụng javascript chạy trong canvas, trong giao diện đầu tiên có vẻ như bạn đang sử dụng canvas android trong ứng dụng của mình.
đây là link
mà có thể giúp bạn chạy canvas html5 trong android
Android là khá xấu về xử lý vải và javascript. Có lẽ đây là lý do tại sao nó cũng bị đóng băng.
- 1. Android Thread.sleep() trong AsyncTask đóng băng UI
- 2. Xem trước máy ảnh Android - Cách 'đóng băng' máy ảnh?
- 3. Đóng băng bằng Python?
- 4. Đóng băng DataGrid Row
- 5. Cách ứng dụng có thể đóng băng Android OS
- 6. Giả lập Android đóng băng trên màn hình tải
- 7. Đóng băng chi nhánh Git
- 8. Ổ cắm Bluetooth đóng băng điện thoại
- 9. C# máy chủ comet đóng băng IIS
- 10. panes động đóng băng trong excel
- 11. pip đóng băng> lỗi requirements.txt
- 12. Ứng dụng WPF đóng băng Windows 7
- 13. window.scroll chức năng đóng băng firefox
- 14. DataGridView - cách đóng băng một cột?
- 15. thread UI đóng băng trong textbox gọi
- 16. Ngay lập tức đóng băng AVCaptureSession
- 17. C# Đóng băng Winform trên SerialPort.Close
- 18. map.fitBounds (bounds) khiến trình duyệt đóng băng
- 19. "git push origin master" đóng băng
- 20. Cửa sổ chính bị đóng băng khi cửa sổ con bị đóng băng quá mức từ một quá trình khác
- 21. Android WebView với video được nhúng trên youtube, nút toàn màn hình đóng băng video
- 22. Làm cách nào để đặt Android SeekBar thành không thể di chuyển/bị đóng băng?
- 23. Lật Canvas Android
- 24. Android Canvas drawLine
- 25. Hộp thoại tiến trình UI đóng băng/Slow
- 26. Backbone.js fetch() tập hợp lớn khiến tập lệnh đóng băng
- 27. Giao diện người dùng đóng băng với async/await
- 28. Arduino I ²C đóng băng sau khi khởi động
- 29. Visual Studio đóng băng hoặc treo khi khởi động
- 30. Ứng dụng web Java trong tomcat định kỳ đóng băng
Nếu bạn che bức tranh của mình bằng div trong suốt thì sự cố vẫn xảy ra? Chỉ để xem liệu nó có chạm vào phần tử canvas hay không. – GillesC
Hãy thử khi tôi về nhà, nhưng tôi nghĩ rằng vấn đề liên quan đến màn hình LCD đang cố gắng cuộn/thu phóng. Nó khóa ngay cả khi tôi kéo ngón tay của tôi ra khỏi khung hình. – Joel
Có thể bạn có một số lệnh gọi 'event.preventDefault()' không cần thiết? – antyrat