2010-07-28 1 views
0

위젯에 ImageView가있는 위젯이 있습니다. 이 ImageView를 9 패치 PNG 리소스에서 만든 비트 맵으로 설정했습니다. 이미지가 올바르게 설정되었지만 올바르게 펼쳐지지 않습니다. 즉, 전체 이미지가 9 패치 PNG에 정의 된 부분 대신에 늘어납니다. 방금 9 패치 이미지를 리소스로 설정하면 작동합니다. 이 문제를 어떻게 해결할 수 있습니까? 안드로이드는 PNG를 알고RemoteViews를 사용하는 위젯의 9 패치 비트 맵

// Does not work (9-patch does not display correctly) 
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.someNinePatch); 
remoteViews.setImageViewBitmap(R.id.someImageView, bitmap); 

// Works (9-patch displays correctly) 
remoteViews.setImageViewResource(R.id.someImageView, R.drawable.someNinePatch); 

답변

1

자원에 .9.png 파일 확장자의 미덕에 의해 아홉 패치입니다. 안드로이드는 파일 확장자가 없으며 이미지가 9 패치라는 것을 모르기 때문에 리소스 외부에서 9 패치 이미지를 사용하는 방법을 모르겠습니다.

+0

리소스의 확장명은 .9.png이므로 대신 비트 맵으로 사용하고 있습니다. –

+1

@Isaac Walter :하지만 Bitmap 객체에로드하여 확장자를 잃어 버리고 있습니다. AFAIK,'Bitmap' 객체는 일반 PNG, 9 패치 PNG, JPEG, GIF 등에서 온 것인지 알 수 없습니다. – CommonsWare