2012-06-08 18 views
17

Xin chào tôi có một myshape.xml có thể vẽ được, nó chứa một số <shape> và tôi không thể đặt android: id thành các hình dạng.Thiết lập hình dạng XML của Android có thể vẽ được theo chương trình

Trong mã của tôi, tôi muốn thiết lập nền tảng của một cái nhìn đến tập tin này bằng

catAll.setBackgroundDrawable(getResources().getDrawable(R.id......???));

nơi myshape.xml không hiển thị trong file R của tôi bởi vì nó không có id. và tôi không thể đặt id thành đối tượng.

Trong XML của tôi, tôi thiết lập hình dạng đơn giản bằng cách nhập tên tài nguyên có thể kéo. Nhưng tôi cần phải làm điều này theo chương trình.

Trả lời

29

Bạn không cần phải tự mình vẽ. Sử dụng điều này thay vì:

catAll.setBackgroundResource(R.drawable.myshape); 

Để tham khảo trong tương lai, nếu bạn làm mong muốn để có được giữ drawable nhớ rằng drawables sống trong namespace R.drawable. Vì vậy, mã của bạn sẽ trở thành:

getResources().getDrawable(R.drawable.myshape); 

Đây là giống như những gì bạn làm trong XML của bạn:

@drawable/myshape 

thay vì

@id/myshape 
+0

Chỉ tay ra "R.drawable" namespace là chìa khóa , cảm ơn K-ballo! –

+0

id getDrawable (id) hiện đã bị xóa. –