2011-11-11 5 views
1

응용 프로그램은 LWUIT을 사용하여 J2ME에서 개발됩니다. 이 응용 프로그램을 삼성 기기에서 이식하면 다음과 같은 문제가 발생합니다.LWUIT 양식의 메뉴 막대 높이

int h = Display.getInstance().getDisplayWidth();

그것은 삼성 GT S5250에 대한 388을 반환합니다. 따라서이 치수를 사용하여 이미지를 그릴 때 화면 하단에 흰색 스트립이 표시됩니다. Form.show()으로 전화하면 올바르게 표시되고 높이는 400이므로이 문제를 해결하는 방법을 알려줍니다. 크기가 LWUIT에서 어떻게 계산되고 어떻게 수행되는지 알고 싶습니다. MenuBar 화면 하단에 높이 및 흰색 스트립 표시가 있습니다.

답변

1

getDisplayHeight()을 입력하려는 getDisplayWidth()을 입력했다고 생각합니다.

표시되는 문제는 삼성 장치의 버그로 인한 것입니다. LWUIT는 네이티브 타이틀 영역을 숨기는 MIDP에서 전체 화면 모드를 호출하지만, 일부 장치에서는 항상 발생하지는 않으므로 LWUIT는 장치에서 잘못된 정보를 가져옵니다. 새로 고침은 보통 이것을 해결하며 LWUIT이 화면을 그릴 때까지 크기가 수정됩니다.

일반적으로 솔루션은 비교적 간단합니다. 이미지를 생성하기위한 일반 코드를 만들고 화면에 그릴 때 이미지 크기가 부적절한 경우 즉시 이미지를 다시 만듭니다. 또한 문제를 일으킬 수있는 기기 회전 문제도 해결됩니다.

+0

안녕하세요. 양식에 이미지를 추가하지 않았 으면 화면 아래쪽에도 흰색 스트립이 표시됩니다.이 strip.i를 제거하려면 Form.i의 배경색 만 설정하십시오. 또한 canvas.servicesReapint()를 추가하십시오. ; 하지만 아무것도 영향을 미치지 않습니다.이 문제를 해결하려면. – Megha

+0

serviceRepaints를 호출하지 마십시오. 폼에 이미지를 추가 한 방법을 지정하지 않았습니까? callSerially end 메소드 내에 코드를 작성해야합니다. 즉, LWUIT가 화면을 제대로 초기화 할 시간이 있어야합니다. callSerially 콜백에서 LWUIT을 시작하는 LWUIT 1.5 데모를 살펴 보는 것이 좋습니다. –