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

나인패치 관련 질문입니다.

0 추천

현재 이미지를 나인패치로 만들어서 삽입하였는데요.

 

노트10.1(태블릿)과 갤럭시 S DUOS로 테스트를 하고 있는데요.

 

두 개의 이미지의 크기가 차이가 없습니다....

 

혹시 그리드뷰 안에 핏을 맞춰서 잘못된건지 했는데... 이미지뷰로 그냥 뿌려줘도 동일하네요...

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <GridView
        android:id="@+id/activity_root_gv_dashboard"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:gravity="center"
        android:numColumns="auto_fit"
        android:columnWidth="100dp"
        android:stretchMode="spacingWidthUniform"
        android:background="#ffffffff"
        android:listSelector="#00000000"
        android:scrollbars="none">
    </GridView>

</LinearLayout>

위의 코드가 그리드뷰 코드입니다. 

 

검색결과 그리드뷰는 문제가 없어 보이는데....

 

나인패치에서 좌측과 상단만 조절하여 테스트를 하였는데도 해상도가 크게 차이는데도 불구하고 동일하게 나타납니다...

문제점을 어디서 찾아야 할까요... 조언 부탁드려요 ㅠ

 

확장자도 문제없이 바뀌었고... 미리보기 파일에서 검은선이 뜨는데 왜 그런걸까요...ㅠ

 

 

아래는 gridview의 아이템 코드입니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:descendantFocusability="blocksDescendants">

    <ImageView
        android:id="@+id/gridview_dash_iv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/gridview_dash_tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textSize="12sp"/>
        <!--android:singleLine="true" />-->

    <!--<ToggleButton-->
        <!--android:id="@+id/gridview_dash_tb_noti"-->
        <!--android:layout_width="wrap_content"-->
        <!--android:layout_height="wrap_content"-->
        <!--android:background="@drawable/gridview_dash_notistyle"-->
        <!--android:layout_margin="10dp"-->
        <!--android:textOn=""-->
        <!--android:textOff=""-->
        <!--android:focusable="false"-->
        <!--android:focusableInTouchMode="false"-->
        <!--android:layout_centerVertical="true"-->
        <!--android:gravity="center_vertical|center_horizontal"/>-->

</LinearLayout>

wrap이라서 그런건지... 모르겟네요... 나인패치를 처음 써봐서.요...

taejun (7,240 포인트) 님이 2015년 5월 12일 질문
taejun님이 2015년 5월 12일 수정

1개의 답변

+2 추천
 
채택된 답변

나인패치 제작시 유의사항은....확장자랑 검정색깔인데요

확장자가 .9.png 이런식인지 확인하시고요

가끔 까만색을 약간 덜 까만색으로 찍는 경우가 있는데

#000000 이 아니면 나인패치로 인식이 안되니 확인해 보세요.

 

우선 sdk/tools 폴더에 보면 draw9patch.exe 라는 파일이 있어요

거기에 파일을 로딩해 보시면 오른쪽에 파일이 늘어났을때 어떤 모양인지 볼 수 있습니다.

거기서 잘 늘어나면 파일은 정상입니다.

나인패치 이미지가 뭘 다 해주는건 아닙니다.

단순히 배경 이미지일 뿐이므로 파일이 정상이면 레이아웃을 점검해 보세요.

올려주신 코드를 보면 그리드에 배경이 그냥 흰색인데...파일 잘 지정하신건지 궁금하네요.

부르스리 (1,620 포인트) 님이 2015년 5월 12일 답변
taejun님이 2015년 5월 12일 채택됨
저도 모든 해상도에 맞춰서 말풍선 이미지를 균등하게 적용시키려고 나인패치 한 번 사용한 적이 있는데..이미지가 잘 수정 되었다면 문제없이 적용될거라 생각합니다. 부르스리님 말씀대로 나인패치로 생성된 이미지는 이미지명.0.png 이런식으로 되구요. 저같은 경우엔 Relativelayout의 배경 이미지로 사용해서 글자가 늘어남에 따라 이미지 가로/세로 길이도 변경됩니다. (가로 세로 wrap_content)
확장자 확인하였고, draw9patch.exe에서 제작하였습니다. 오른쪽에서 늘어나있는 것도 확인하였습니다...
레이아웃에 문제가 있는건가요...?


코드상에서 Bitmap으로 받아서 이미지뷰에 삽입하였는데 이것이 잘못된 것인가요...?
xml 에서 background 로 넣으세요.

아니면 코드에서 하시더라도
imageView.setBackground(R.drawable.ninepatch);
이런식으로 하시면 될듯하네요.
그렇다면 제가 지금 gridview 안에 imageview에 넣을 상황이니...
imageview에 background에 9패치 이미지를 bitmap으로 넣으면 되나요?
background를 줘야되는 거였군요...
ImageView에 setImageBitmap을 하여서 동작하지 않았던 것 같습니다.
답변 주신분들 감사드려요^^
추가 질문이 있는데... 지금 적용 된 상태(나인패치가)에서
4.0인치 WVGA(480 x 800)를 가진 기기와 ,
1,280 x 800 (WXGA, 화소 밀도 약 149.9 ppi)를 가진 기기가 이미지의 크기가 거의 동일합니다... 이러한 이유는 또 있나요...ㅠㅠ?이미지가 잘못된건가..
...