2013-01-24 29 views

Trả lời

18

Sử dụng

Drawable[] drawables = textView.getCompoundDrawables(); 

Ngoài ra nếu bạn muốn so sánh hai drawable.

Bitmap bitmap = ((BitmapDrawable)drawables[1]).getBitmap(); 
Bitmap bitmap2 = ((BitmapDrawable)getResources().getDrawable(R.drawable.twt_hover)).getBitmap(); 

if(bitmap == bitmap2) 
    { 
     //Code blcok 
    } 
+2

Tôi không nghĩ đó là cách hay để làm cho ứng dụng tạo hai bitmap và so sánh chúng với mỗi lần nhấp vào một TextView, phải không? –

+0

có thể đúng, nhưng tôi thấy câu trả lời này trên chủ đề này http://stackoverflow.com/questions/9125229/comparing-two-drawables-in-android –

+6

getCompoundDrawables() trả về chúng theo thứ tự được chỉ định Trái, Trên, Phải, Dưới – defhlt

2

Tôi nghĩ bạn nên sử dụng textView.getCompoundDrawables(); Đối với nhận được từ drawable hàng đầu tôi sẽ nghĩ rằng nó sẽ là thứ hai drawable ví dụ như

Drawables tmp[] = textView.getCompoundDrawables(); 
tmp[1]; //this should be your top drawable but not 100% sure. 
+0

bạn đã thay đổi câu hỏi) – Leonidos

+0

tôi đã thay đổi câu hỏi? – Raigex

2

Bạn không thể có được ID có thể rút trong thời gian chạy. TextView chỉ sử dụng ID trong hàm tạo của nó để tải tương ứng có thể vẽ được. Sau khi drawable được nạp ID đã biến mất.

Trong một số trường hợp, hoàn toàn không có ID có thể vẽ được. drawableTop có thể là giá trị rgb màu.

5

Thứ nhất, cung cấp cho TextView một ID của bạn để bạn có thể tìm thấy nó trong bạn Activity:

<TextView 
    android:id="@+id/textView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="20dip" 
    android:drawableTop="@drawable/new" /> 

Thứ hai, trong bạn Activity tìm TextView của bạn và nhận được drawables hợp chất trong phương pháp onCreate của bạn sau khi gọi setContentView:

TextView textView = (TextView) findViewById(R.id.textView); 
// Left, top, right, bottom drawables. 
Drawable[] compundDrawables = textView.getCompoundDrawables(); 
// This is the top drawable. 
Drawable topCompoundDrawable = compoundDrawables[1]; 
Các vấn đề liên quan