2011-03-16 2 views
4

정사각형 이미지 격자를 만들고 싶지만 필요에 따라 이미지가 표시되지 않습니다. 나는의 GridView 튜토리얼 시작 : 가까운 내가 원하는 것 같았다Android GridView 3 x 6 이미지 자르기

http://developer.android.com/resources/tutorials/views/hello-gridview.html

.

내가 볼 수있는 유일한 차이점은 정확히 18 개의 이미지가 필요하며 모두 크기가 정사각형이어야한다는 것입니다. 저는 열의 수를 3으로 설정 한 다음 18 개의 이미지를로드합니다. 그러면 18 개의 이미지가 6 개의 행에로드됩니다. 이미지가 각 행을 완전히 채우고 불필요한 추가 크기의 간격을 남기지 않도록합니다. 이미지가 휴대 전화에 다운로드 될 때까지 이미지 크기를 알지 못합니다. 잘만되면 그들은 거의 정사각형이 될 것입니다. 그러나 중심을 잘라내어 완벽하게 정사각형으로 만들고 3 개의 기둥을 완전히 채우도록 크기를 조정해야합니다. 이미지의 종횡비를 유지해야합니다.

설정이나 코드를 찾을 수없는 것 같습니다. 이미지가 겹치거나, 틈이 있거나, 제대로 확장되지 않거나, 다른 것이 잘못되었습니다.

내가 들어 왔 가장 가까운 내 에뮬레이터가 480X800로 설정되어있는 경우 다음과 같이의 GridView 자습서를 변경하는 것입니다 :

 

imageView.setLayoutParams(new GridView.LayoutParams(480/3, 480/3)); 
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
imageView.setPadding(0, 0, 0, 0); 
imageView.setAdjustViewBounds(true); 

==== 

< GridView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:numColumns="3" 
    android:stretchMode="columnWidth" 
    android:gravity="fill|clip_horizontal|clip_vertical" 
/> 

이 거의 정확합니다. 내가 사용하고있는 사각형 테스트 이미지는 몇 픽셀이 누락되었습니다. 정사각형이 아닌 이미지는 자르지 않고 비율을 유지하기 위해 블랙 복싱으로 내부에 들어 맞습니다. 하드 코딩 된 값은 부서지기 쉽기 때문에 모든 전화기, 방향 또는 레이아웃. CENTER_CROP 문서가 이미지에 맞게 확장하여 원하는대로 할 것이라고 생각하는 대신 CENTER_INSIDE처럼 보일 것 같습니다.

나는 가까운 느낌이지만, 내가 원하는 것을 결코 얻지 못한다. 어쩌면 GridView 이외의 다른 뭔가를 사용해야합니까? 어떤 제안?

아무쪼록.

감사합니다.

+0

참조 http://stackoverflow.com/questions/6557516/making-grid-view-items-square – larham1

답변

0

분명히 CENTRE_CROP이 맞지만 스크린 샷을 업로드하여 문제를 파악하고 문제를 해결할 수 있습니까?

또한 item_layout xml 파일을 업로드하는 것이 좋습니다.

<ImageView> 너비를 특정 크기로 사용했는지 확인하십시오. 다양한 화면 크기의 유연성을

, 나는, 이미지의 폭과 높이 모두에 대해 같은 값을 설정 3으로 폭을 분할하고 그것에서 약간의 패딩을 공제하고 그 후, 화면 폭 프로그래밍를 얻을 제안 이것은 당신에게 어떤 스크린든지에 정사각형 심상을 줄 것이다.