2014-01-23 3 views
0

우선 내가 작성한 코드에서 내가 어디에서 잘못했는지 확신 할 수 없습니다.다른 기기에서 안드로이드 이미지 자른

스크린 샷에서 볼 수 있듯이 3 가지 장치가 있습니다. 빨간색 상자 안의 이미지를 확인하십시오. 엑스 페리아 Z 울트라 화면의 이미지가 잘립니다되었지만, 나머지는 괜찮 :

삼성 갤럭시 SII (젤리 빈)

Samsung Galaxy SII (Jelly Bean)

넥서스 7 (킷캣)

Nexus 7 (KitKat)

Xperia Z Ultra (KitKat)

이미지를 ListView에 저장 한 다음 어댑터 내부에서 팽창시킵니다. 다음은 맞춤 행의 레이아웃 코드입니다.

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/img_item" 
     android:src="@drawable/error" 
     android:adjustViewBounds="true" 
     android:scaleType="centerCrop" /> 

</RelativeLayout> 

어댑터에는 Picasa 이미지 로더를 사용하여 이미지를로드합니다. 이미지 크기 조정 옵션을 설정하지 않았습니다.

public class ItemPhotoAdapter extends BaseAdapter { 
    ... 

    @Override 
    public View getView(int i, View view, ViewGroup viewGroup) { 
     ... 

     Picasso.with(context) // 
       .load(iim.getResized()) // 
       .placeholder(R.drawable.placeholder) // 
       .error(R.drawable.error) 
       .into(vh.item_image); 

     return view; 
    } 
} 

누구나 여기서 무슨 일이 일어 났는지 알 수 있습니까?

답변

2

이 모양은 android:scaleType="centerCrop"과 관련이 있으며 같은 크기의 이미지가 다른 화면 크기/밀도에서 어떻게 나타나는지 보입니다. 나는 이것이 피카소와 아무 상관이 없다고 생각한다.

Xperia의 행 높이가 상당히 작게 보입니다.

Android documentation on the different ScaleTypes이 도움이 될 수 있습니다. 최종 제품이 무엇인지에 따라 다양한 화면 유형의 행에 대해 명시적인 높이 (특정 또는 최소/최대)를 설정하여 놀아야 할 수 있습니다. 다른 화면 밀도와 크기 크기 조정

이미지 :(안드로이드 두통이다. 당신은 정말 특별한 뭔가를해야 할 경우 일부 프로그램 조정을 필요로 끝낼 수 있습니다. OnPreDrawListener 콜백 도움이 될 수 있습니다.

를 볼 수 있습니다 https://stackoverflow.com/a/4398578/413254

여기에 공식 문서 : 여기이 콜백 사용의 예 https://developer.android.com/reference/android/view/ViewTreeObserver.OnPreDrawListener.html

+0

아, 내가 이런 날이 올 줄 알고에 어떤 제안을 프로그래밍 방식으로 작동하게하는 방법을 내가 사랑하는 것, 단지 초보자입니다.? 방법을 배우고, _; – AimanB

+0

@AimanB 내 업데이트 된 게시물을 확인하십시오. 그게 정확히 내가 각 이미지/행에 표시 해야하는지 모른 채로 얻을 수있는 구체적입니다 :) – loeschg

관련 문제