2016-09-19 9 views
2

私は、カスタムdrawable xmlの中にattrを置くときに問題があります。ここでカスタムdrawableの中にattrを置く方法は?

は私のレイアウトのサンプルです:

 <Button 
      android:id="@+id/btn" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/my_custom_btn"/> 

その後、私のカスタム描画可能 "my_custom_btn"、私はattr_my_custom_colorとその色を指定したい:

<?xml version="1.0" encoding="utf-8"?> 
    <selector xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item android:state_pressed="true" 
      android:drawable="?attr/attr_my_custom_color" /> <!-- pressed --> 
    </selector> 

マイattr.xmlファイル:

<resources> 
    <attr name="attr_my_custom_color" format="color"/> 
</resources> 

そして、私のstyle.xmlファイル、私のアプリ私は私のレイアウトでそれをテストするとき

<resources> 
<style name="AppThemeTest" parent="Theme.AppCompat.Light.NoActionBar"> 

    <item name="attr_my_custom_color">@color/primary</item> 

</style> 

マイattrが正常に動作しますが、私は私のカスタム描画可能内側に置いたとき、それは動作しません:陽イオンは(私のマニフェストに)このテーマを使用しています。

それは罰金コンパイルが、私は私のアプリを起動したとき、それはこのエラーが表示されます。タグは「描画可能」を必要とします。

によって引き起こさ

:org.xmlpull.v1.XmlPullParserException:バイナリXMLファイルのライン#4アトリビュートまたはチャイルドタグを使用してドロワーブルを定義する

カスタムドロウアブル内にattrを指定する手助けができますか?

答えて

0
you have to change background to drawable 


<Button 
     android:id="@+id/btn" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:drawable ="@drawable/my_custom_btn"/> 
+0

<商品のandroid:state_pressed = "true" を アンドロイド: "?のattr/attr_my_custom_color" 描画可能= /> 'それはもうクラッシュしませんが、それは適用されません<! - 押します - > 'どちらか。 – curiousStranger123

+0

あなたのminSdkVersionは何ですか? –

+0

minSdkVersion 16 – curiousStranger123

関連する問題