Подтвердить что ты не робот

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

У меня есть textview

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

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

4b9b3361

Ответ 1

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

 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
    }

Ответ 2

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

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

Во-вторых, в 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];

Ответ 3

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

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

Ответ 4

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

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