Tôi phải xoay một nút (hoặc văn bản bên trong, nó giống nhau) theo mức độ ngẫu nhiên bằng cách mã hóa. Có bất kỳ button.setRotate (x) nào trong mức API thấp hơn 11?Xoay nút (hoặc văn bản bên trong) trong mã
Trả lời
Ok, có giao diện và câu trả lời là: Thật phức tạp.
Bạn có thể xoay nút bằng cách sử dụng khung hoạt ảnh cũ, ví dụ: như thế này:
Button button = (Button) findViewById(R.id.button);
// rotation from 0 to 90 degrees here
RotateAnimation a = new RotateAnimation(0, 90);
a.setFillAfter(true);
a.setDuration(0);
button.startAnimation(a);
Vấn đề ở đây là nút trông được xoay, nhưng không thể được nhấp chính xác. Các tọa độ kích hoạt sự kiện nhấp chuột là các tọa độ tại khu vực mà nút đã có trước khi quay ong.
Vì đây không phải là giải pháp rất tốt, đặt cược tốt nhất của bạn có thể là viết chế độ xem tùy chỉnh mở rộng lớp Button và xoay canvas nút trong onDraw()
. Bạn cũng phải ghi đè onMeasure()
trong trường hợp này. Xem Custom Components để biết giới thiệu phải làm gì.
Ngoài ra, bạn có thể thử chặn các sự kiện nhấp chuột từ bố cục bố cục nút và kích hoạt sự kiện thích hợp khi nhấp chuột xảy ra trong các tọa độ hiện tại của nút. Điều này hơi "hacky".
ngày mai tôi sẽ được thử! các nút của tôi là hình vuông, vì vậy nó có thể hoạt động. –
thêm thông tin trục xoay vào giữa hoạt ảnh, nó hoàn hảo !! Cảm ơn bạn XoayAnimation a = new RotateAnimation (0, 90, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); –
xin vui lòng im mới để devlopment android, bạn có thể chỉ cho tôi làm thế nào để mở rộng lớp nút, với mã xoay của nó? – Mehdi
có vấn đề gì với câu hỏi này? –
Nó không cho thấy nỗ lực nghiên cứu. Mở tài liệu lớp 'Nút', sử dụng chức năng tìm kiếm của trình duyệt của bạn và nhập' xoay vòng 'trong trường tìm kiếm và bạn sẽ thấy ý tôi. –
Tôi đã tìm kiếm rất nhiều, nhưng hầu hết các câu hỏi là về xoay hình ảnh bằng cách nhấn nút..không xoay nút chính nó. trong tài liệu, tôi chỉ tìm thấy "setRotation (float) = rotation của VIEW, ở mức độ" .. Tôi không biết cách triển khai để xoay nút. button.setRotate (x) không hoạt động. –