3

我可以使用 xml 属性设置图像 textview 右侧

                 <TextView
                    android:id="@+id/txtarrow1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:drawableRight="@drawable/arrow"
                    android:gravity="right"
                    android:onClick="VideoClick"
                    android:padding="5dip"
                    android:textColor="#feb4e7" >
                </TextView>

我想设置

android:drawableRight="@drawable/arrow"

像编程一样

txtarrow1.setBackgroundResource(R.drawable.arrow_blue);

但这一个不起作用

4

3 回答 3

9

您可以简单地使用 Google 查找 TextView 的 Android java 文档。他们有一个巨大的表格,显示每个属性的编程选项。

android:drawableRight   (@compile time)
setCompoundDrawablesWithIntrinsicBounds(int,int,int,int)    (@runtime)

绘制在文本右侧的drawable。

于 2013-03-25T07:54:17.823 回答
4

在这里你想使用

以编程方式在文本视图中的特定方向上添加图像

有2种方法:

1>通过 Image Drawable

前任:

    Drawable img = getContext().getResources().getDrawable( R.drawable.dogy );
    txtarrow1.setCompoundDrawablesWithIntrinsicBounds( 
    img,// left 
    null,//top 
    null,// right 
    null//bottom);

请记住,此方法在一个视图中的图像存储中最有用(文本视图,按钮)

2>通过图像 ID

        txtarrow1.setCompoundDrawablesWithIntrinsicBounds( 
        R.drawable.ic_doggy,// left 
        0,//top 
        0,// right 
        0//bottom);

最有可能这些方法用于不同的图像显示在多个视图中,如(GridView)

当Drawable无法显示图像集nullID0(零)时,必须记住这两者之间的区别

于 2014-11-07T10:40:57.910 回答
-1

你可以用SpannableString..

SpannableString text = new SpannableString("text");
text.setSpan(new ImageSpan(getActivity(), R.drawable.arrow_blue), 0, 1, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
txtarrow1.setText(text);
于 2013-03-25T07:53:43.310 回答