태그 보관물: 9-patch

Titanium android에선 테두리가 검은 이미지를 9-patch로 인식

Titanium의 안드로이드 지원은 꽤나 후진편인데,

검은색 이미지를 사용할 경우 이런 에러가 나오는 것을 볼 수 있다.(2.0.2 GA 기준)

06-07 16:56:04.507: E/TiApplication(2738): (KrollRuntimeThread) [438,440] APP PROXY: ti.modules.titanium.app.AppModule@413ba7f8
06-07 16:56:14.105: E/TiApplication(2738): (main) [1156,8379] Sending event: exception on thread: main msg:java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0; Titanium 2.0.2,2012/05/30 10:21,2ff31a3
06-07 16:56:14.105: E/TiApplication(2738): java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
06-07 16:56:14.105: E/TiApplication(2738): 	at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
06-07 16:56:14.105: E/TiApplication(2738): 	at java.util.ArrayList.get(ArrayList.java:304)
06-07 16:56:14.105: E/TiApplication(2738): 	at org.appcelerator.titanium.util.TiNinePatchHelper.createChunk(TiNinePatchHelper.java:189)
06-07 16:56:14.105: E/TiApplication(2738): 	at org.appcelerator.titanium.util.TiNinePatchHelper.process(TiNinePatchHelper.java:52)
06-07 16:56:14.105: E/TiApplication(2738): 	at org.appcelerator.titanium.util.TiFileHelper.loadDrawable(TiFileHelper.java:308)
06-07 16:56:14.105: E/TiApplication(2738): 	at org.appcelerator.titanium.util.TiUIHelper.buildBackgroundDrawable(TiUIHelper.java:493)
06-07 16:56:14.105: E/TiApplication(2738): 	at org.appcelerator.titanium.view.TiUIView.handleBackgroundImage(TiUIView.java:783)
06-07 16:56:14.105: E/TiApplication(2738): 	at org.appcelerator.titanium.view.TiUIView.processProperties(TiUIView.java:562)
06-07 16:56:14.105: E/TiApplication(2738): 	at ti.modules.titanium.ui.widget.TiView.processProperties(TiView.java:39)
...

로컬 이미지 리소스를 불러올때에 9-patch 이미지인지 확인을 하면서

이미지 테두리가 투명과 검은색으로만 이루어져있으면 9-patch로 인식을 하도록 하는 병맛스러운 코드가 있다.

테두리가 모두 투명하면 9-patch로 인식하지 않도록 하는 방어코드(?)가 있으니 피하려면 테두리를 모두 투명하게 하거나 검은색에서 약간 투명한 색을 사용하면 될듯하다;

그런데 애초에 .9.png가 아니면 9-patch로 인식을 할 필요가 있을까?