web-dev-qa-db-ja.com

カスタム属性からの描画可能なリソース

いくつかのカスタム属性でドローアブルフォルダからリソースを取得する可能性はありますか?

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

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

12
Procurares

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

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

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

https://stackoverflow.com/a/6108156/413254 から)

8
loeschg

実際には「参照」と呼ばれる属性形式があります。したがって、カスタムビュークラスで次のようなものが得られます。

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

Attrs.xmlでこのような何かをしている間:

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

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

ここによく似た答えがあります: カスタム属性の定義

46
EdgarK