2012-05-21 28 views
5

Làm theo câu hỏi: Animate change of view background color on Android Tôi đang cố gắng tạo TextView mờ dần giữa hai hình nền qua tài nguyên TransitionDrawable. tập tin chuyển xml của tôi trông như thế này:TransitionDrawable làm nền trong TextView không hoạt động như mong đợi

<?xml version="1.0" encoding="utf-8"?> 
<transition xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:drawable="@drawable/gray_bar" /> 
    <item android:drawable="@drawable/green_bar" /> 
</transition> 

Và tôi cố gắng thiết lập nó như là nền tảng về thời gian chạy theo:

TextView answerBox = (TextView) findViewById(R.id.answerBox); 
answerBox.setBackgroundResource(R.drawable.correct_transition); 
TransitionDrawable transition = (TransitionDrawable) answerBox.getBackground(); 
transition.startTransition(1500); 

Kết quả là các TextView biến từ này:

Textview with gray_bar background này: Textview with green_bar background

Khi toàn bộ thanh màu xám sẽ được chuyển thành g reen một.

Cả hai đều là hình ảnh png 9 bản vá. Đây là những bản gốc:

gray_bar green_bar

tôi đoán là thanh màu xanh lá cây được lấp đầy khoảng trống cho văn bản bên trong thanh màu xám, nhưng tôi không biết tại sao. Bất kì manh mối nào? Một màu xám cũng xuất hiện lớn hơn nhiều so với nó nên, nhưng không thay đổi kích thước trước, trong hoặc sau khi chuyển đổi, mặc dù sự xuất hiện của hình ảnh bao gồm. Nó có thể là một vấn đề với các hình ảnh 9-vá gây ra tôi đã thử nghiệm hình ảnh bình thường và quá trình chuyển đổi hoạt động tuyệt vời.

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

+0

Tôi có cùng một vấn đề chính xác ... bạn có quản lý để giải quyết vấn đề này theo bất kỳ cách nào không? – zwebie

+0

hmmm, trong ví dụ của google, họ sử dụng setImageDrawable có thể setbackground không phải là hành vi mong đợi, nếu không, thì bạn có thể đặt một imageview làm "nền" (sử dụng bố cục tương đối đặt nó dưới dạng xem văn bản) và chỉ chạy chuyển đổi ? – MikeIsrael

+0

Không, điều đó cũng không hoạt động. Tôi đã chuyển sang màu thay vì hình ảnh. Tôi đề nghị đó là một vấn đề 9-patch gây ra tôi thử nghiệm cùng một mã với hình ảnh bình thường và làm việc như mong đợi. Vì vậy, zwebie, nó làm việc với màu sắc thay vì hình ảnh 9-vá, và trong trường hợp của tôi nó hoạt động với hình ảnh bình thường (không 9-patch). – viridis

Trả lời

0

Tôi đã có thể tạo lại vấn đề bạn đang thấy với thanh màu xanh lá cây không chiếm toàn bộ không gian màu xám. Để khắc phục, hãy lấy thanh màu xám 9 bản vá và mở rộng các đường ở phía dưới cùng bên phải đến một pixel cách xa các góc.

Trên một lưu ý phụ, một vấn đề tiềm tàng khác với 9 bản vá của bạn là khi nội dung tăng chiều cao, hình ảnh của bạn sẽ có hiện vật trực quan khi nó trải dài theo chiều dọc. Đây là kết quả của chiều cao của thanh màu đen ở phía bên trái của hình ảnh của bạn, trong đó xác định phần nào của bản vá 9 sẽ kéo dài. Một cải tiến hơn nữa cho 9 bản vá này là giảm đường màu đen ở bên trái xuống chỉ còn một điểm ảnh ở chính giữa cạnh trái. Vì chỉ có một điểm ảnh được đánh dấu là có thể kéo giãn, nên điểm ảnh này sẽ mang đến cho bạn một cạnh dọc sắc nét đẹp nếu độ cao có thể kéo của bạn tăng lên.

Nếu bạn bao gồm mã bố cục, tôi có thể giúp bạn giải quyết các vấn đề về kích thước khác của bạn.

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