如何以编程方式在右侧设置Textview

时间:2013-03-25 07:50:11

标签: android textview

我可以使用像

这样的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);

但是这个没有用

3 个答案:

答案 0 :(得分:9)

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

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

要绘制在文本右侧的drawable。

答案 1 :(得分:4)

此处您想使用

以文本方式在文本视图中以特定方向添加图像

有两种方法:

1&GT; 通过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 无法显示图像集 null &amp;时,必须记住这两者之间的差异。在 ID 设置 0 (零)

答案 2 :(得分:0)

您可以使用SpannableString ..

SpannableString text = new SpannableString("text");
text.setSpan(new ImageSpan(getActivity(), R.drawable.arrow_blue), 0, 1, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
txtarrow1.setText(text);