2014년 5월 14일 수요일

Tizen native app 개발 시 nine patched png 처리 이슈

아래 내용은 Tizen 2.2 기반이라 상위 버전에서는 별 의미 없는 내용입니다.
--------------------------------------------------------------------------- nine patch 적용된 png 파일을 사용하다보니
bitmap을 읽어오는 API에 따라서 nine patch image로 인식이 되지 않을 수 있어서 정리함.
(내가 방법을 모를지도..)

아래는 tizen 내부 저장소에서 그림을 읽어오는 sample code

result
MainForm::OnDraw(void)
{

// App resource(res/screen-density-xhigh)에서 나인패치 이미지 가져오는 예
// 하지만 이렇게 가져온 bitmap은 nine patch 로 인식 안됨 .
// false == pBitmap->IsNinePatchedBitmap()
// canvas->DrawNinePatchedBitmap() 시 에러메세지 발생

Bitmap* pBitmap = pAppResource->GetBitmapN(L"ninepatch.9.png");

// 아래는 App 영역내 data 폴더에 저장된 나인패치 이미지를 가져오는 예
// 이때는 정상적으로 인식됨.

Image image;
Bitmap* pBitmap = null;

image.Construct();
String filePath = App::GetInstance()->GetAppRootPath() + L"data/ninepatch.9.png";
pBitmap = image.DecodeN(filePath, BITMAP_PIXEL_FORMAT_ARGB8888, 100, 100);


Canvas* canvas = this->GetCanvasN(rect);
if (canvas != null)
{

r = canvas->DrawNinePatchedBitmap(Rectangle(0,0,100,100), *pBitmap);
AppLog("%d", r);

delete canvas;
}

Form::OnDraw();
}

댓글 없음:

댓글 쓰기