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


기존 버튼에서 다음과 같이

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

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

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

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

  • 2016년 05월 03일에 작성됨

조회수 416


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"/>
  • 2016년 05월 03일에 작성됨
    노바입니다. 개발 잘하고 싶어요.


노바하이요~ㅎㅎ

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

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     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close