마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

아 디자인땜에 미치겟네요 살려주세요 ㅠㅠ

0 추천

 

 

안녕하세요.

다이얼로그 이미지가 디자인팀에서 넘어왔습니다.

아 근데 지금 어찌해야될지를 모르겠네요;;

저 강아지머리를 테두리 라인에 걸쳐야되는데

도저히 되지를 않습니다.

현재 렐러티브 레이아웃을 최상위로 두고

테두리안에 내용을 리니어로구성하고 배경을 테두리이미지로 주었습니다.

그래서 렐러티브단에서 강아지 머리를 걸치려고 하거든요.

avobe 속성으로 테두리리니어위에 올려놨습니다.

안에 위젯들이 적어질때마다 동적으로 리니어레이아웃의 크기가 변경되야 해서요..

그때마다 강아지 머리가 테두리에 맞춰서 움직여야되서 그렇게 했는데

예쁘게 나오지 않아 위에 마진을 조금 주어야 되는 상황입니다.

그런데 avobe속성으로 상대적으로 리니어위에 박아놓게 되니 마진이 먹히질 않더군요 ㅠㅠ

조언 부탁드립니다. ㅠㅠ

 

갸아악 (21,260 포인트) 님이 2014년 10월 20일 질문

4개의 답변

0 추천
xml레이아웃 구성으로만 해결 하니 힘들죠~~!

코드수정이 반드시 필요 해 보입니다.

레이아웃의 위치를 받아와서 직접 해당 이미지를 위치 시키심이 가장 좋아 보입니다.
ThisPlus (46,920 포인트) 님이 2014년 10월 20일 답변
힌트 조금만 더 주실 수 없을까요
절실합니다.
0 추천
흠...쉬운 케이스 같은데요....아래처럼 하면 안되나요?

말씀하신 마진이 안먹히면 패딩도 있구요...이미지를 프레임 레이아웃으로 감싸는 방식도 있을 수 있습니다.

 

리니어 vertical

    이미지

    리니어 vertical

        텍스트

        텍스트

        에디트텍스트

        텍스트

        리니어 horiontal

               버튼

               버튼
익명사용자 님이 2014년 10월 21일 답변
강아지가 저 다이얼로그 테두리에 살짝 아래쪽으로 걸쳐야되는데요 그래서 더 어렵네요 말씀하신대로 프레임 레이아웃으로 마진을 주면 다이얼로그 내의 위젯수가 달라져 다이얼로그크기가 작아질때 강아지의 위치랑 다이얼로그의 위치가 틀려지네요ㅜ
0 추천
아래쪽 다이얼로그 커스텀아닌가요?

다이얼로그 TOP 이미지에 걍 강아지 같이 넣으면안되나요?

그리고 나인패치 하실텐데

강아지 왼쪽이랑 오른쪽부분만 나인패치 먹이면 되는게 아닐까요?
선후 (380 포인트) 님이 2014년 10월 21일 답변
선후님
제가지금 이미지를 테두리 , 강아지 머리 이렇게 이미지를ㅁ를 받았는데
선후님 말씀은 상단이미지 컨텐트영멱이미지 하단이미지 이렇게 받는데 상단이미지에 강아지까지 같이 받고 왼쪽오른쪽 테두리만 나인패치하란 말씀이신가요?
0 추천
강아지가 상단 라인에 발이 걸쳐야된다는 말이죠?

강아지 이미지를 above 아래 테두리를 해서 걸쳐놓은거죠?

그리고 강아지 이미지는 marginBottom -5dp 정도 줘서 라인에 걸치게 한거 맞구요?

 

근데 아래 테두리가 높이가 변하면서 margin -5dp한게 안먹힌다 이말인가요?

 

생각대로라면 렐러티브레이아웃에선 -dp만해줘도 자동으로 움직일거같은데 의아하네요..

 

위에 디스플러스님이 말하신거처럼 코드로 하시면 해결되는문제죠.

 

말그대로 높이가 변경된다는 것은 EditText안에 글자가 들어갈때마다 변경된다는 얘기니깐,

EditText에 getTextChageListener인가 뭔가 EditText에 텍스트 변경되는 리스너 붙이시구요.

높이가 변경될때마다 테두리 최상단의 Y을 가져와서(getY)   강아지 이미지 높이를 설정(setY)해주면

될거같은데요
기초개발자 (24,060 포인트) 님이 2014년 10월 21일 답변
어..됩니다.;;
기초개발자님 감사들빕니다.
그런데 제가 마진에 대한 이해가 부족한지 일단 알고 지나가야될거 같아 한번만 더 조언을 부탁드립니다.;;;

일단 제가 안되던 레이아웃 코드입니다.
<ImageView
        android:id="@+id/imageView1"
        android:layout_width="84dp"
        android:layout_height="49dp"
        android:layout_above="@+id/dialog_password_find_lay"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="12dp"
        android:src="@drawable/dialog_dog" />

현재 이미지는 강아지구요
above한 대상은 테두리를 백그라운드로 쓰고 있는 레이아웃입니다.(dialog_password_find_lay)
그런데 저는 당연히 강아지를 다이얼로그 위에 above로 배치시켰으니
위에 공백을 주어 강아지를 아래로 밀어낸다는 생각으로
강아지 이미지에 마진 탑을 주었거든요.
근데 이 마진이 먹히질 않는겁니다ㅣ;;
그런데 기초개발자님 말씀대로 마진 바텀 -5를 주니까 강아지가 내려가네요..
갑자기 혼란스럽습니다.
되긴 했는데 제가 이해하던것이 부정되는 기분...
제가 위에 생각한 마진의 개념이 다른건가요?
왜 마진을 top으로 10dp를주면 강아지가 밀려내려가지 않을까요?
강아지가 테두리 위에 있는거니깐  강아지 above 테두리 가 되는거죠.
강아지를 marginBottom 10dp를 해주면 테두리로부터 10dp만큼 올라가는거구요..
반대로 marginBottom -10dp를 해주면 테두리 아래로 10dp만큼 내려가겠죠..
감사합니다!
제가 진짜 큰 착각을 하고 있었네요;;
자칫하면 엄청 헤멜뻔했는데 한줄기 빛을 주셔서 감사합니다.
좋은 하루 되세요^^
...