안드로이드 개발 질문/답변
(글 수 45,052)
모서리가 둥근 레이아웃을 만들어 보려고 합니다.
ImageView를 둥글게 만들듯이.. 적용을 해보았는데..
android.view.InflateException 이 나 버리더라구요...
혹시 레이아웃도 둥글게 처리 해보신분 계신가요?
이미지도 둥글게 처리하고..
클릭시 발생하는 Selector 도 바꺼줘야 할꺼 같은데..
해보신분 있으시면.. 노하우 좀 공개해 주세요^^;;
2010.06.10 13:09:11
답변은 감사드린데.. 제가 생각했던거랑 조금 틀리네요..
제가 하고 싶은건.. 이미지가 아닌, 사각 레이아웃으로 되어있는 놈을 둥글게 바꾸고 싶어서 그런겁니다 ㅠㅠ
이미지를 둥근 이미지안쓰고.. 사각으로 된 이미지를 backgrund로 되어있는 레이아웃을 둥글게 바꾸고.. 그것에 대한 selector 를
둥글게 주고 싶어서요 ㅠㅠ
제가 하고 싶은건.. 이미지가 아닌, 사각 레이아웃으로 되어있는 놈을 둥글게 바꾸고 싶어서 그런겁니다 ㅠㅠ
이미지를 둥근 이미지안쓰고.. 사각으로 된 이미지를 backgrund로 되어있는 레이아웃을 둥글게 바꾸고.. 그것에 대한 selector 를
둥글게 주고 싶어서요 ㅠㅠ
2011.02.14 11:32:30
제가 했던 고민과 비슷한 고민을 하시는군요..
제가 얻은 결론은
Canvas에 동그랗게 그리고, Touch Event가 동그란 영역 안에서 이루어 지면 해당 Event 발생..
의 방법밖에 없다..였습니다.
2011.02.14 11:57:19
rounded_edges.xml 을 아래와 같이 작성 후 drawable 폴더에 저장하시고
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="1dp" android:color="#FF00FF00" /> <solid android:color="#FFFFFF"/> <corners android:radius="5px"/> </shape>
원하시는 layout 에 background 속성으로 아래와 같이 주시면 될 듯...
android:background="@drawable/rounded_edges"




<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_focused="true"
android:state_pressed="false"
android:drawable="@drawable/delete"
/>
<item
android:state_focused="true"
android:state_pressed="true"
android:drawable="@drawable/delete_on"
/>
<item
android:state_focused="false"
android:state_pressed="true"
android:drawable="@drawable/delete_on"
/>
<item
android:drawable="@drawable/delete"
/>
</selector>
위 xml을 적당한 이름(xxx.xml)으로 drawable 디렉토리에 넣어두시고
레이아웃 속성에 android:background="@drawable/xxx.xml" 이렇게 주시면 됩니다.
위 xml에선 delete 에 둥근 비트맵을 할당하고 delete_on에 터치했을 때 비트맵을 할당하면
원하시는 효과를 얻으실 수 있으실거에요~