android获取已设置为textview的drawabletop的drawable

时间:2013-01-24 20:48:39

标签: android textview

我有textview

<TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dip"
            android:drawableTop="@drawable/new" />

我希望活动jave知道drawableTop上设置了哪个图片,怎么做?

4 个答案:

答案 0 :(得分:25)

使用

 Drawable[] drawables = textView.getCompoundDrawables();

此外,如果你想比较两个drawable。

Bitmap bitmap = ((BitmapDrawable)drawables[1] ).getBitmap();
Bitmap bitmap2 = ((BitmapDrawable)getResources().getDrawable(R.drawable.twt_hover)).getBitmap();

if(bitmap == bitmap2)
    {
        //Code blcok
    }

答案 1 :(得分:9)

首先,为您的TextView提供一个ID,以便在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[] compoundDrawables = textView.getCompoundDrawables();
// This is the top drawable.
Drawable topCompoundDrawable = compoundDrawables[1];

答案 2 :(得分:2)

我认为你应该使用textView.getCompoundDrawables();至于从可绘制的顶部获取,我认为它将是第二个可绘制的,例如

Drawables tmp[] = textView.getCompoundDrawables();
tmp[1];  //this should be your top drawable but not 100% sure.

答案 3 :(得分:2)

您无法在运行时获取可绘制ID。 TextView仅在其构造函数中使用ID来加载相应的drawable。加载drawable后ID已消失。

在某些情况下,根本没有可绘制的ID。 drawableTop可以是颜色rgb值。