2014-12-16 3 views
3

새 팔레트 라이브러리 (4.4.4에서 'com.android.support:palette-v7:21.0.+')를 구현하는 데 문제가 발생했습니다. GridView에서 각 항목의 일부를 색칠하려고하는데, 화면에서 항목을 스크롤 할 때 다시 오른쪽 색상으로 돌아 가기 전에 잠시 동안 잘못된 색으로 바뀝니다.팔레트 라이브러리가 GridView에서 스크롤하는 동안 색이 바뀜

getView가 호출 될 때마다이 문제가로 호출되었을 수도 있으므로 이미 코드가 생성 된 경우 내 코드를 확인했습니다. 이것은 그것을 더욱 악화시켰다. 스크롤 할 때마다 색상이 바뀔 것입니다. 충분한 스크롤을하면 모든 색상이 서로 바뀌 었습니다. 색깔이 무작위가 아닌 서로 바뀌고있는 것처럼 보입니다.

는 Heres는 무엇을 내 코드의 조각은 다음과 같습니다

Palette.generateAsync(bitmap, 
    new Palette.PaletteAsyncListener() { 
     @Override 
     public void onGenerated(Palette palette) { 
      Palette.Swatch vibrant = 
        palette.getMutedSwatch(); 
      if (vibrant != null) { 
       fView.findViewById(R.id.colored_bar).setBackgroundColor(
         vibrant.getRgb()); 
      } 
     } 
    }); 

사람이 문제를 해결하는 방법을 알고 있나요? 나는 팔레트의 응답을 캐싱에 대한 언급을 들었지만 그것이 내가 이미있는 것보다 더 많은 것을 의미하는지 확신 할 수 없었다. 나는 또한 팔레트의 동시 및 비동기 사용을 시도했다. 감사합니다. .

+0

getView() 메소드를 게시하십시오. –

+0

나는 동일한 문제가있다. 문제는 convertView 및 Palette Async 기능과 관련이 있다고 생각합니다. 특정 비트 맵에 대해 팔레트가 생성 될 때까지 색상을 지정해야하는보기가 변경되므로 색상이 해당보기로 설정됩니다. 혹시 문제를 해결 했습니까? –

+0

도움이 될만한이 게시물을 확인하십시오. GridView에서 팔레트 사용시 문제 (http://stackoverflow.com/questions/31188934/troubles-with-using-palette-with-gridview) – lowwor

답변

0

해결책을 찾았습니다. 근본적으로 문제는 팔레트 객체가 매번 생성된다는 점이었습니다. 비용이 많이 들고 부정확했습니다. 팔레트는 정적이므로 ViewHolder를 만들고 팔레트를 만든 후에 저장합니다.