21

いくつかのカスタム属性で描画可能なフォルダーからリソースを取得する可能性があるので、次のように書くことができます:

<com.my.custom.View
    android:layout_height="50dp"
    android:layout_width="50dp"
    ...
    my_custom:drawableSomewhere="@drawable/some_image" />

そして、カスタムビュークラス内でドローアブルを使用して単純にアクションを実行しますか?

4

3 に答える 3

61

実は「参照」という属性フォーマットがあります。したがって、カスタム ビュー クラスで次のようなものが得られます。

case R.styleable.PMRadiogroup_images:
                    icons = a.getDrawable (attr);
                    break;

attrs.xml に次のようなものがある場合:

<attr name="images" format="reference"/>

"a" は、ビュー コンストラクターから取得した属性から取得する TypedArray です。

ここにも同様の良い答えがあります:カスタム属性の定義

于 2014-10-15T13:50:38.003 に答える
9

EdgarK の回答を参照してください。それは良いです。(これは受け入れられた回答であるため、これを削除することはできません)

これはあなたの質問に答えていますか?

「format="integer"、ドローアブルのリソース ID、および AttributeSet.getDrawable(...) を使用できます。」

( https://stackoverflow.com/a/6108156/413254より)

于 2013-07-29T22:10:20.897 に答える