DrawableLeft в TextView с использованием Drawable Object программно

В настоящее время разрабатывается новое представление для текста и изображения Приложение SEND/RECEIVE между клиентом и сервером.

Я создал row.xml для просмотра строк, например:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/msgLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/msgText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="5sp"
        android:background="@drawable/speech_bubble_green"
        android:drawableTop="@drawable/ic_content_picture"
        android:shadowColor="@color/textShadow"
        android:shadowDx="1"
        android:shadowDy="1"
        android:textSize="0sp" />

</LinearLayout>

Теперь я хочу установить drawableTop программно без текста, когда я получаю изображение для отправки или получения.

При отправке я взял изображение из галереи, и оно возвращает объект Bitmap.

Как программно установить этот объект Bitmap как drawableTop?

P.S.

Я видел этот ответ StackOverflow, но он работает для Drawable Id.

Ваша помощь будет оценена по достоинству.


person Pratik Butani    schedule 05.02.2014    source источник


Ответы (1)


Вы можете использовать следующее:

Drawable d = new BitmapDrawable(bm);
d.setBounds(0, 0, bm.getWidth(), bm.getHeight());
textView.setCompoundDrawables(null, d, null, null);
person Niko    schedule 05.02.2014
comment
+1 за то, что вы набрали этот ответ, а не скопировали. ;) - person Pratik Butani; 05.02.2014
comment
Конструктор BitmapDrawable (растровое изображение) устарел. - person Ulphat; 27.02.2016