나는 나중에이 같은 함수에 여러 개체에 할당 할 BitmapDrawable 생성 (정확히이 있지만, 같은 자사의 테스트 목적으로 옷을 벗었) :동일한 BitmapDrawable을 여러 객체에 할당 할 수 있습니까?
Drawable CreateBitmap(int col)
{ Bitmap b = Bitmap.createBitmap(50, 50, Config.ARGB_8888);
Canvas c = new Canvas(b);
c.drawColor(col);
return new BitmapDrawable(b);
}
그리고이 작품과 크기에 나에게 BitmapDrawable을 만듭니다 내가 기억하는 50 x 50. 그런 다음이 BitmapDrawable을 다양한 버튼, 체크 박스에 지정합니다. 어떤 것이 든 나타나고 특정 색상이 필요합니다.
내가 가진 문제는 BitmapDrawables가 어떻게 든 잘 렸습니다. 그것은 높이 80의 버튼과 높이 160의 버튼에 할당하면 첫 번째 요소가 멋지게 채워지고 후자는 절반 만 채워지는 것처럼 보입니다. BitmapDrawable은 첫 번째 용도로 설정되고 이후의 모든 지정은이 항목에 의해 제한됩니다. 때로는 때때로 다른 탭으로 전환하여 이전 탭으로 돌아가는 경우에만 즉시 발생합니다.
저는 BitmapDrawable이 메모리에서 50x50으로 유지되고 할당 된 객체가 apropriate 크기로 자체 버전을 얻는 것 (또는 렌더링시 크기가 조정 된 복사본을 만듭니다)이 아니라 BitmapDrawable 자체를 변경한다는 것을 알았습니다. 나는이 모든 것이 어떻게 작동하는지 잘 모르겠다. 내가 잘못하고있는 것에 대해 조언하고, 각 객체에 대해 개별 BitmapDrawable을 만들지 않으면 내가 다른 것을 할 수 있는지에 대해 조언 할 것이다.
감사 :
여기에 대한 좋은 기사가있다. 그런 다음 개체에 대해 개별 비트 맵을 사용합니다. 그러나 ListView에 동일한 문제가 발생하지 않았으므로 ListView에 동일한 문제가 발생합니다. – HardCoder
@HardCoder : 귀하의 질문이 무엇을 의미하는지 모르겠습니다. BitmapDrawable이 한 번에 하나의보기에만 나타나는 한, 그래야 정상입니다. 그러나 개별 ListView 항목이 포함됩니다. 두 개의 서로 다른 ListView 항목에서 동일한 BitmapDrawable을 사용하려면 두 항목을 동시에 볼 수 없도록해야합니다. –
글쎄 지금까지, 나는 그들을 다른 Listviews 및 다른 항목에서 사용하고 지금까지 문제가 없었다. 그러나 나는 목록에 대해 서로 다른 btimapdrawables를 만들 것이다. 나는 그들이 동시에 다른 항목에 대해 볼 수있는 몇 가지 사건을 가지고 있지만 결코 그것 (tbh 2 목록과도)에 어떤 문제가 없었어요. 나는 그것을 안전한쪽으로 바꾸어야합니까? – HardCoder