갤럭시탭 10.1을 타켓으로 하는 프로젝트를 하는 중 HoneyComb(API Level 11)에서는 기본 webview 사용 시, html 문서내의 input box에 포커스가 주어졌을 때 Background 가 날아가는(?) 현상이 있다는 것을 발견 했습니다.

Graphic Rendering과 관련있는 문제로, 이를 해결하기 위해서는 Android 3.0 (API Level 11)에서 추가된 2D Graphics Hardware Accelerated 설정을 사용 해야 합니다.


Hardware Acceleration의 사용 방법 

Hardware Acceleration은 AndroidManifest.xml 또는 해당 클래스에서 정의 할 수 있습니다.

1.AndroidManifest.xml을 이용하는 방법
AndroidManifest.xml 의 <application> 태그에 android:hardwareAccelerated="true" 속성 추가 합니다.
application 이나 activity 수준에서 하드웨어 가속 설정을 할 때 사용하며, 특정 activity에서 하드웨어 가속에 대한 설정을 해제 할 때는 아래와 같이 사용 합니다.
<application android:hardwareAccelerated="true">
     <activity android:name="MainActivity" />
     <activity android:name="SubActivity" android:hardwareAccelerated="false" />
</application>


2. 해당 클래스에 정의 하는 방법

하드웨어 가속이 필요한 윈도우에 아래 코드를 추가 합니다.
getWindow().setFlags(
     WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
     WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);


Hardware Acceleration은 HoneyComb 이상의 SDK 에서만 설정 가능 하므로, Project Build Target을 Android 3.0(API Level 11) 이상으로 설정 해야 합니다.


Hardware Acceleration에 대한 더욱 자세한 정보는 아래 링크를 참조 하시기 바랍니다.
http://android-developers.blogspot.com/2011/03/android-30-hardware-acceleration.html



반응형

+ Recent posts