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

조회수 2957회

기존 버튼에서 다음과 같이

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

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

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

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

  • (•́ ✖ •̀)
    알 수 없는 사용자

2 답변

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

    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 를 상속받아 살짝 바꾼거라.. 이렇게 했을때 상태가 바뀌면 셀렉터가 동작하면서 색깔이 바뀌는거구요. 아마도 코드상에 약간 문제가 있었던게 아닐까 싶어요!

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)