tôi đang tìm cách để tái tạo sau đây trong ứng dụng của tôi:lệch một cái nhìn văn bản trong Android
Như bạn thấy, về cơ bản nó là một nút làm tăng/giảm giá trị của độ xem văn bản chứa bên trong nó. Nút này sẽ có ba trạng thái trực quan -> không nén, giảm và tăng (như được thấy trong hình trên, người dùng nhấn vào mũi tên tăng và nút xuất hiện được nhấn ở bên đó)
Dưới đây là 3 trạng thái nút hiện tại của tôi:
Như bạn có thể thấy, vấn đề tôi có là việc có thể để nghiêng một cách chính xác/xoay độ xem văn bản như vậy có vẻ trực quan chính xác và xuất hiện nghiêng cùng với các nút khi nó được tăng lên hay giảm.
Tôi đã thử hai cách tiếp cận khác nhau cho đến nay:
Tạo một lớp xem văn bản tùy chỉnh mà override phương thức
onDraw()
để nghiêng vải:@Override public void onDraw(Canvas canvas) { canvas.save(); canvas.skew(0.2f, 0f); super.onDraw(canvas); canvas.restore(); }
Tích hợp
Rotate3dAnimation
lớp (nguồn here) và sử dụng nhiều biến thể khác nhau để có được kết quả mong muốn như:Rotate3dAnimation skew = new Rotate3dAnimation( 30, 0, centerX, centerY, 0, false); txtAmount.startAnimation(skew);
Thật không may, tôi không hoàn toàn nhận được kết quả chính xác phản ánh hình ảnh đầu tiên ở trên. Tôi đang bối rối với các giá trị cài đặt bằng trục Z, nghiêng, xoay, v.v.
Tôi rất cảm kích sự giúp đỡ của bất kỳ ai có kinh nghiệm về nội dung này. Cảm ơn trước
Hi Parth, cảm ơn vì câu trả lời của bạn. Bằng cách kết hợp hai cách tiếp cận và giống như bạn đã nói, thay đổi giá trị một chút, tôi hài lòng với kết quả cuối cùng. Tôi đoán tôi sẽ có được ở đó cuối cùng nhưng câu trả lời của bạn sped nó lên :) – elgoog
Tại sao một hoạt động mở rộng một TextView? Chắc chắn đó chỉ là khó hiểu .. –
nó chỉ là một sự lựa chọn xấu của tên @ JamesGoodwin nhưng nó hoạt động tuyệt vời! – Mars