Android получить drawable, который устанавливает как drawabletop textview

У меня есть textview

и я хочу, чтобы функция jave знала, какое изображение установлено на drawableTop, как?

4 ответа

Использование

Drawable[] drawables = textView.getCompoundDrawables();

Также, если вы хотите сравнить два доступных.

Bitmap bitmap = ((BitmapDrawable)drawables[1] ).getBitmap();
Bitmap bitmap2 = ((BitmapDrawable)getResources().getDrawable(R.drawable.twt_hover)).getBitmap();
if(bitmap == bitmap2)
 {
 //Code blcok
 }


Сначала укажите TextView идентификатор, чтобы найти его в Activity:

Во-вторых, в Activity найдите TextView и получите составные чертежи в методе onCreate после вызова 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];


Вы не можете получить идентификатор с идентификатором во время выполнения. TextView использует ID только в этом конструкторе для загрузки соответствующего drawable. После того, как загрузочный файл загружен, идентификатор исчез.

В некоторых случаях идентификатор с идентификатором отсутствует. drawableTop может быть значением цвета rgb.


Я думаю, вы должны использовать textView.getCompoundDrawables(); Что касается того, что я получаю от вершины с верхушкой, я бы подумал, что это будет второй вариант, например,

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

licensed under cc by-sa 3.0 with attribution.