使用可绘制对象以编程方式在TextView中绘制DrawableLeft

时间:2014-02-05 08:12:20

标签: android bitmap textview android-drawable

目前正在为客户端和服务器开发文本图片 SEND/RECEIVE application的新视图。

我为Row视图创建了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 ,无需文本即可发送或接收图像。

发送时,我已从图库中选取图片并返回位图对象。

如何以编程方式将位图对象设置为drawableTop。?

P.S。

我已经看到了这个StackOverflow答案,但它适用于可绘制ID。

我们将不胜感激。

1 个答案:

答案 0 :(得分:3)

您可以使用以下内容:

Drawable d = new BitmapDrawable(bm);
d.setBounds(0, 0, bm.getWidth(), bm.getHeight());
textView.setCompoundDrawables(null, d, null, null);