2011-11-07 59 views
6

Tôi có nút, mà tôi xoay 45 độ bằng cách sử dụng xoay hình ảnh động và áp dụng trên người nghe nhấp chuột mà nướng một tin nhắn.Trình nghe Onlclick không hoạt động đúng ..?

Khi tôi nhấp vào trên 50% nút bánh mì nướng đang hiển thị. Nhưng khi tôi bấm vào dưới 50% của nút không có gì là displying.

mã hoạt ảnh tại đây.

<?xml version="1.0" encoding="utf-8"?> 
<rotate 
xmlns:android="http://schemas.android.com/apk/res/android" 
    android:fromDegrees="45" 
    android:toDegrees="45" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:duration="0" android:fillAfter="true"> 
</rotate> 

df

Cảm ơn trước .....!

Trả lời

3

Tôi chắc chắn đây là giới hạn hoạt ảnh trong Android. Họ đã sửa nó trong 3.0 trở đi bằng cách triển khai một hệ thống hoạt hình mới.

đọc ở đây: http://android-developers.blogspot.com/2011/02/animation-in-honeycomb.html

"Cuối cùng, hình ảnh động trước thay đổi sự xuất hiện hình ảnh của các đối tượng mục tiêu ... nhưng họ không thực sự thay đổi các đối tượng bản thân Bạn có thể đã chạy vào vấn đề này Hãy.. nói rằng bạn muốn di chuyển một Button từ một phía của màn hình sang bên kia Bạn có thể sử dụng TranslateAnimation để làm như vậy, và nút sẽ vui vẻ lướt dọc theo phía bên kia của màn hình và khi hoạt hình được thực hiện, nó sẽ vui lòng quay trở lại vị trí ban đầu của nó.Vì vậy, bạn tìm phương thức setFillAfter (true) trên Animation và thử lại lần nữa, lần này nút vẫn giữ nguyên tại vị trí mà nó đã được tạo hoạt ảnh và bạn có thể xác minh bằng cách nhấp vào nó - Hey! Làm cách nào mà nút không nhấp? Vấn đề là các hoạt ảnh thay đổi nơi nút được vẽ, nhưng không phải nơi nút vật lý tồn tại trong vùng chứa. Nếu bạn muốn bấm vào nút, bạn sẽ phải bấm vào vị trí mà nó đã từng sống. Hoặc, như một giải pháp hiệu quả hơn (và một chút hữu ích hơn cho người dùng của bạn), bạn sẽ phải viết mã của bạn thực sự thay đổi vị trí của nút trong bố cục khi hoạt ảnh kết thúc.

Đó là vì những lý do này, trong số những lý do khác, chúng tôi quyết định cung cấp một hệ thống hoạt hình mới trong Honeycomb, được xây dựng dựa trên ý tưởng về "hoạt hình bất động sản".

+0

setFillSau (đúng) tôi đã thực hiện việc này. của nó làm việc tốt cho phần trên không cho phần dưới lý do tại sao ..? – Noby

+0

+1 Vì câu trả lời này là chính xác. @Noby, setFillAfter (true) chỉ đảm bảo rằng bản vẽ sẽ ở trạng thái cuối cùng sau khi hoạt ảnh. Tuy nhiên, nó không thay đổi thực tế rằng hệ thống hoạt hình trước 3.0 không bao giờ thay đổi giới hạn thực tế của đối tượng, vì vậy thể hiện Button của bạn vẫn tồn tại trong hình chữ nhật ban đầu của nó ... mặc dù nó được vẽ khác nhau. Hình chữ nhật ban đầu là nơi các sự kiện cảm ứng sẽ được chụp. – Devunwired

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