27

私はtextviewを持っています

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

そして、私はアクティビティjaveでdrawableTop、どの画像がどのように設定されているかを知りたいですか?

4

4 に答える 4

29

使用する

 Drawable[] drawables = textView.getCompoundDrawables();

また、2つのドローアブルを比較したい場合。

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

if(bitmap == bitmap2)
    {
        //Code blcok
    }
于 2013-01-24T20:56:46.357 に答える
11

まず、TextViewIDを指定して、次の場所で見つけられるようにします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にあなたのメソッドで複合ドローアブルを取得します:onCreatesetContentView

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];
于 2013-01-24T20:59:37.270 に答える
2

実行時にドローアブルIDを取得することはできません。TextViewは、コンストラクターでのみIDを使用して、対応するドローアブルをロードします。ドローアブルがロードされた後、IDはなくなります。

描画可能なIDがまったくない場合もあります。drawableTopはカラーrgb値にすることができます。

于 2013-01-24T20:58:20.597 に答える
2

textView.getCompoundDrawables();を使用する必要があると思います。ドローアブルトップからの取得に関しては、2番目のドローアブルになると思います。

Drawables tmp[] = textView.getCompoundDrawables();
tmp[1];  //this should be your top drawable but not 100% sure.
于 2013-01-24T20:57:55.403 に答える