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
, как?
Ответы
Ответ 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.