타이젠 Native UIFW (EFL) Base Scale 에 대한 사실 타이젠 Tizen 2016.12.28 19:12

타이젠 Native UIFW (EFL) Base Scale 에 대한 사실을 몇가지 간단하게 정리해 둔다. 자세한 내용은 아래 링크에서... Multiple Screen Support


Base Scale 은 디바이스의 ProfileDPI에 따라서 달라진다.

단순히 비례해서 커지거나 작아지는 것이 아니다.

Base Scale 을 이용해서 Scalable UI를 만들 수 있다.

Tizen을 지원하는 디바이스가 다양해지고 있으므로 반드시 고려해야 한다.

아무런 작업을 하지 않으면 pixel값을 의미한다.

Edje 에서 스케일 적용하지 않거나, C code에서 Base Scale 적용하지 않을 경우. edc.c파일에서 기술된 숫자가 곧 pixel 값이 된다.

Edje에서 Base Scale은 기준이되는 Scale을 의미한다.

Base Scale이 1.8일 경우 1.8이 곱해지는 것이 아니라...1.8인 디바이스에서 edc에 기술된 값으로 표시된다는 뜻이다. 예를 들어, 아래 edc에 기술된 RECT는, 실제 디바이스 상황에 따라서 다른 pixel 값을 갖는다.

collections 
{
   base_scale: 1.8; // This value is for WVGA application
   parts 
   {
      part 
      {
         name: "box"; 
         type: RECT;
         min: 100 100;
         scale: 1;
      }
   }
}
//WVGA Mobile Device 에서는 100 * 100 pixel
//HD Mobile Device 에서는 144 * 144 pixel
//FHD Mobile Device 에서는 216 * 216 pixel

edcswallow part에 C code에서 생성한 elementary를 넣을 경우, edc 또는 .c 둘중 한군데서만 처리해 주면 된다.

둘 다 처리하면 중복 적용 된다.

Scale 설정은 App 별로도 가능하고, layout 별로도 가능하고, object 별로도 가능하다.

void    elm_app_base_scale_set (double base_scale)
double  elm_app_base_scale_get (void)
double  edje_object_scale_get (const Evas_Object *obj)
double  edje_object_base_scale_get (const Evas_Object *obj)
void    elm_object_scale_set (Evas_Object *obj, double scale)
double  elm_object_scale_get (const Evas_Object *obj)
elm_config_scale_set()
elm_config_scale_get()

elm_config_scale_set() function is used to set the global scaling factor, that affects to all the widgets.