2017-09-13 3 views
0

그림이 서버에서 다운로드되지만 그림이 동일하지 않기 때문에 오류() 방법 (50x50 픽셀)으로 그림을 그려야합니다. 하지만 넥서스 4 (DIAG = 4.7, 768 × 1280)를 기반으로, 내 MEIZU 프로 6 (DIAG = 5.2, PPI = 424, 1920 × 1080)와 에뮬레이터에서이Picasso가 다른 화면에서 크기 조정

Picasso.with(context) 
      .load(url) 
      .error(R.drawable.non_pic) 
      .resize(100, 100) 
      .into(holder.user_icon); 

내가 발견 코드, 그 테스트 때 resize() 이후 이미지의 크기가 다릅니다. Meizu 이미지는 매우 작지만 에뮬레이터에서는 error()의 그림과 크기가 동일합니다. (이상한 점은 non_pic은 50x50 픽셀 해상도의 png 파일이기 때문입니다.) 따라서 non_pic 매개 변수에 대해 동일한 값으로 하드 세트 이미지 크기를 얻으려면 어떻게해야합니까?

답변

0

측정 값으로 px를 사용하고 있기 때문입니다. 대신 Dp/Dpi를 사용해보십시오. 다음은 PX와 DP 참조 here

에 대한 자세한 내용은 DP

public static float convertPixelsToDp(float px, Context context){ 
Resources resources = context.getResources(); 
DisplayMetrics metrics = resources.getDisplayMetrics(); 
float dp = px/((float)metrics.densityDpi/DisplayMetrics.DENSITY_DEFAULT); 
return dp; 
} 

에 픽셀을 변환 할 수있는 방법 방법이다