Tôi muốn tạo Nút trong Android bằng văn bản và hình nền. Hình nền phải xen kẽ mỗi lần X.Chuyển đổi AndroidDrawable với nhiều mục
Tôi có thao tác này bằng TransitionDrawable với 2 hình ảnh.
Nhưng tôi không thể làm việc này với nhiều hơn 2 hình ảnh.
Những gì tôi có:
Trong mã Java Tôi tạo ra một nút và thiết lập một nền tảng (mà là một TransitionDrawable định nghĩa trong XML). Và tôi bắt đầu quá trình chuyển đổi.
final Button b = new Button(getApplicationContext());
b.setTextColor(getResources().getColor(R.color.white));
b.setText("Some text");
b.setBackgroundDrawable(getResources().getDrawable(R.drawable.tile));
StateListDrawable background = (StateListDrawable) b.getBackground();
TransitionDrawable td = (TransitionDrawable) background.getCurrent();
td.startTransition(2000);
Trong XML tôi xác định trong tile.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<solid
android:color="#449def" />
</shape>
</item>
<item android:drawable="@drawable/transition">
<shape>
<solid
android:color="#0000ff" />
</shape>
</item>
</selector>
Và cuối cùng là một transition.xml
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
<item android:drawable="@drawable/desert"/>
<item android:drawable="@drawable/hydrangeas" />
<item android:drawable="@drawable/jellyfish" />
</transition>
Bây giờ hiệu quả được rằng khi tôi bắt đầu ứng dụng hình ảnh sa mạc được hiển thị . Hình ảnh này đan xen vào hình ảnh của hydrangeas như nó cần. Nhưng hình ảnh sứa không bao giờ được hiển thị.
Trong tài liệu cho TransitionDrawables, bạn có thể chỉ định nhiều hơn 2 drawables nhưng tôi không thể làm việc này.
Tôi cũng đã cố gắng này mà không cần bất kỳ XML nhưng trong JAVA tinh khiết nhưng điều này đã đưa ra chính xác cùng một vấn đề :-(
* Trong doc cho TransitionDrawables nó được tuyên bố rằng bạn có thể chỉ định nhiều hơn 2 drawables * - bạn có thể cung cấp một liên kết đến nơi này được nêu? – Luksprog
http://developer.android.com/reference/android/graphics/drawable/TransitionDrawable.html#TransitionDrawable (android.graphics.drawable.Drawable []) Trạng thái này "Cần ít nhất 2 lớp để có thể vẽ được với làm việc đúng cách. Như đã nói trong bài viết ban đầu của tôi, tôi cũng đã thử tất cả mọi thứ trong mã Java thuần túy (do đó actaully sử dụng constructor này) nhưng điều này có cùng một vấn đề. – Knarf
Lựa chọn không phù hợp cho các từ. Tôi vừa xem mã cho 'TransitionDrawable' và nó chỉ mờ dần giữa hai drawables, mọi lớp khác đều bị bỏ qua. – Luksprog