안드로이드 <item> 에서 android:drawableTop 을 사용하고 싶습니다!

기존 버튼에서 다음과 같이

<Button
            android:drawableTop="@drawable/~"
            />

구현했다가 state에 따라 다른 이미지를 사용하려고 xml을 따로 뺐는데요.

<item 
    android:drawable="@drawable/~" 
    android:state_focused="true" 
    android:state_pressed="false"/>

요렇게는 되는데 android:drawableTop 을 사용하게되면 에러가 납니다..ㅠ 혹시 어떻게하면 같은 효과를 낼 수 있을까요? 고수님 도와주세요 ㅠ.ㅠ

2답변

  • 좋아요

    3

    싫어요
    채택취소하기

    버튼에서 상단으로 이미지를 보여주고 싶은 거라면, 아래와 같은 방식으로 가능할 것 같습니다.

    scaleType 으로 늘어남을 조절하고(여기서는 이미지가 깨지지 않게 fitCenter를 사용), paddingBottom 으로 하단 여백을 조절하면 될 것 같아요.

    <ImageButton
            android:layout_width="match_parent"
            android:layout_height="400dp"
            android:src="@drawable/~"
            android:scaleType="fitCenter"
            android:paddingBottom="200dp"
            android:background="@null"/>
    
  • 노바하이요~ㅎㅎ

    질문자님께서 하셨던 방법이 정석인것같아요. 에러나는게 이상한데요. 제가 잘 쓰고 있는 코드 하나 공유드리면

    drawable/bg_icon_check.xml

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/icon_check_p" android:state_selected="true" />
        <item android:drawable="@drawable/icon_check_n" />
    </selector>
    

    layout/layout_item.xml

    <TextView
            android:id="@+id/view_manner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/bg_icon_check"
            android:drawablePadding="14dp" />
    

    Button 이어도 당연히 상관없구요. Button 이 TextView 를 상속받아 살짝 바꾼거라.. 이렇게 했을때 상태가 바뀌면 셀렉터가 동작하면서 색깔이 바뀌는거구요. 아마도 코드상에 약간 문제가 있었던게 아닐까 싶어요!

    • 엇 ㅋㅋ 카이 ㅋ 반가워요 ㅋ Yeonhwa Nova Woo 2016.5.3 14:55
    • 버튼에서 drawableTop 을 사용하는게 아니라, item tag 에서 사용하는거라서 그런것 같아요 ㅋ Yeonhwa Nova Woo 2016.5.3 14:55
    • 아 그얘기였군요~ ㅎㅎ 암튼 방가 Wooram Jung 2016.5.5 11:35

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.