2014-10-23 3 views
0

나는 위젯을 구현했습니다. 위젯은 일반적으로 잘 작동합니다. 그러나 여기저기서 나는 위젯의 이미지 중 일부가 깨져서 (검은 색, 정확히 말하면) 사용자들로부터 보고서를 받는다. 정확히 설명 된 문제가있는 것으로 보이는 Motorola Razr i (XT890) 기기의 스크린 샷을 포함 시켰습니다. 모든 아이콘은 PNG 형식의 drawable-hdpi 리소스 폴더에 있습니다.때때로 위젯의 아이콘이 부러 지거나 검은 색이됩니다.

이러한 동작에 대한 가능한 설명은 무엇입니까? 여기

내가 위젯에 이미지를 할당하는 방법 코드입니다 :

One icon does not load correctly

블랙 아이콘

public static void updateWidgetData(RemoteViews view, String id, Integer idWidget, String background, String showTitle, String titleAlpha, Context context) { 
    ... 
    Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), resourceId, AndroidUtil.getLowMemoryBitmapOptions()); 
    view.setImageViewBitmap(idWeatherIcon, bitmap)); 
    ... 
} 

public static BitmapFactory.Options getLowMemoryBitmapOptions() { 
    /** BITMAP FACTORY OPTIONS **/ 
    BitmapFactory.Options bitmapOpts = new BitmapFactory.Options();  
    bitmapOpts.inPreferredConfig = Bitmap.Config.RGB_565;  
    bitmapOpts.inPurgeable = true; 
    bitmapOpts.inInputShareable = true; 
    /** END BITMAP FACTORY OPTIONS **/ 
    return bitmapOpts; 
} 
임의의 위치에 표시되므로 예는 오류가 발생 한 가능성 ...

답변

0

불행히도, 내가 말할 수는 없지만 다음을 확인하도록 제안하고 싶습니다.

  1. 이 Motorola에서 제공되는 BitmapFactory 옵션은 AndroidUtil.getLowMemoryBitmapOptions()에 의해 반환되며, 필요한 경우 표시되는 장치에 따라 달라질 수 있습니다.

  2. 체크 모든 이미지, 하나 이상의 (어쩌면 알파 채널/투명성?)

  3. 가 위 및 장치/GPU/OS 버전 중 하나 (때문에 안드로이드 조각화 관련이있을 수 있습니다 어떻게 든 다를 수 있습니다 , 당신은 당신이 무엇을 발견 할 수 있는지 결코 모른다).

+0

** 1) ** 내 질문을 getLowMemoryBitmapOptions() 코드로 업데이트했습니다. 옵션은 모든 기기에서 동일합니다. ** 2) ** 이미지를 확인했습니다. 모두 같은 출처로되어 있습니다. 확실히 동일합니다. ** 3) ** 내 견해로는 장치/GPU/OS가이 문제와 관련이 없다고 생각합니다. 차라리 모토로라의 사용자 정의 홈 화면 구현을 가정합니다. [Motoblur] (http://en.wikipedia.org/wiki/Motoblur) – Devdroid

+0

홈 화면이 부분적으로 위젯에 영향을주지 않아야합니다 (모든 이미지가 검은 색이어야 함) . Go Launcher와 같은 다른 Launcher를 설치하고 시도해보십시오. 테스트 목적으로'bitmapOpts.inPurgeable = true; bitmapOpts.inInputShareable = true;'로 변경하고 ARGB_8888로 변경하십시오. – Cornel