2011-01-11 3 views
0

내 액티비티의 최상위 레이아웃은 프레임 레이 아웃입니다. 나는이 응용 프로그램을 완성, 디버깅 및 테스트했으며 g1 및 다양한 에뮬레이터에서 모든면에서 올바르게 작동해야합니다. 그러나 2.1 인치 이상을 실행하는 3.7 인치 디스플레이의 경우 선형 레이아웃 에 포장 된 일부 이미지 뷰는 주기적으로 인 이 표시되지 않습니다. 나는 당신이 응용 프로그램에서 효과와 함께 그들을 만지고 끌 수 있기 때문에 그들이 거기에 있다는 것을 압니다. 그래서 나는 그들이 어떻게 든 응용 프로그램의 주요 구성 요소 인 SurfaceView 밑에있다는 것을 이라고 생각합니다. 이것은 SurfaceView가 LinearLayout보다 xml에서 선언되었다고하더라도 분명합니다. 그러나 LinearLayout의 ImageViews는 onCreate()의 끝을 향해 프로그래밍 방식으로 추가됩니다.ImageViews가 때때로 FrameLayout 액티비티에 표시되지 않습니다.

Framelayout은 프레임 레이아웃의 둘 이상의 자식을 볼 수있는 유일한 방법은 화면보다 작고 서로 떨어져 배치하는 것입니다.

이상하게도 때로는 이미지 뷰가 표시됩니다. 이는 무작위입니다. 어쨌든, 나는 framlayayout.bringChildToFront (v를보기)와 함께 이것을 성공하려고 시도하지 않고 선형 레이아웃에서 시도하고있다.

아무도 그 행동이 임의적으로 어떻게 될 수 있는지에 대한 통찰력이 있는지 궁금하고,이 imageviews를 어떻게 코딩해야하는지 궁금합니다. 이 문제가 발생하지 않도록하고 왜 문제는 3.7 대 3.2 인치 화면에서만 발생합니까? 두 개의 3.2 인치 화면은 모두 htc이므로 공급 업체도 역시 중요 할 수 있습니다.)

[편집] 실제로이 문제는 화면 크기 (또는 공급 업체) 문제가 아니라 2.2 문제임을 확인했습니다. SurfaceView 이있는 framelayout에 추가 된 ImageViews가 표면 뷰 위에 표시되도록 할 수는 없습니다. 각각의 onDraw() 메소드에서 몇 가지 테스트를 실행했는데 imageviews는 'visible'(0)이며, drawable의 alpha에는 아무 것도 수행하지 않습니다. 또한 ondraw()에서도 마찬가지입니다. [편집]

모든 통찰력을 환영합니다.

켄 T.

답변

0

나는() 메소드의 서피스 뷰 SurfaceView의 doDraw의 드로어 블을 그리는했고, 나는 드로어 블의 파일 이름을 변경했다. 나는 이것이 어딘가의 악성 코드의 사례라고 생각한다. ImageViews를 스크랩하고 터치 처리 코드를 다른 곳으로 전송해야했습니다.

관련 문제