주요 내용으로 건너뛰기

Tiled Image

설명

Tiled Image는 타일 비트맵을 표시할 수 있는 단순 위젯입니다. 이 말은 Tiled Image가 제공되는 비트맵보다 클 경우 비트맵이 가로 방향과 세로 방향으로 반복된다는 것을 의미합니다. 또한 비트맵이 배경과 알파 블렌딩 처리되어 투명한 영역을 가질 수도 있습니다.

시뮬레이터에서 실행 중인 Tiled Image

위젯 그룹

Tiled Image는 TouchGFX Designer의 Images 위젯 그룹에 있습니다.

TouchGFX Designer의 Tiled Image

속성

TouchGFX Designer에서 Tiled Image의 속성은 다음과 같습니다.

속성 그룹속성 설명
Name위젯 이름입니다. 이는 TouchGFX Designer와 코드에서 사용되는 고유 식별자입니다.
LocationXY는 상위 노드를 기준으로 위젯의 왼쪽 상단 모퉁이를 지정합니다.

WH는 위젯의 가로 및 세로 길이를 지정합니다.

Lock 은 현재의 X, Y, W, H 위치에서 위젯의 고정 여부를 지정합니다.
위젯을 현재 위치에 고정시키면 스크린을 통한 위젯 인터랙션도 비활성화됩니다.

Visible 은 위젯의 표시 여부를 지정합니다. 위젯을 보이지 않게 하면 스크린을 통한 위젯 인터랙션도 비활성화됩니다.
ImageImage는 위젯에서 사용할 이미지를 지정합니다.
패턴이 반복되는 이미지가 좋습니다.
OffsetXY는 타일 그리기가 시작되는 이미지의 오프셋을 지정합니다.
AppearanceAlpha는 위젯의 투명도를 지정합니다. 위젯의 알파 값 범위는 0부터 255까지입니다. 0은 완전 투명을, 255는 불투명을 의미합니다.
MixinsDraggable은 런타임 시 위젯의 드래그 가능 여부를 지정합니다.

ClickListener는 클릭했을 때 위젯의 콜백 실행 여부를 지정합니다.

FadeAnimator는 위젯의 알파 값 변경에 대한 애니메이션 처리 여부를 지정합니다.

MoveAnimator는 값 변경에 대한 애니메이션 처리 여부를 지정합니다. XY 값 변경에 대한 애니메이션 처리 여부를 지정합니다.

인터랙션

Tiled Image에서 지원되는 액션과 트리거는 다음 섹션에서 설명합니다.

액션

위젯별 액션설명
Resize widget위젯의 가로 및 세로 길이를 변경합니다.
표준 위젯 액션설명
Move widget시간이 지나면서 위젯을 새로운 위치로 이동시킵니다.
Fade widget시간이 지나면서 위젯의 알파 값을 변경합니다.
Hide widget위젯을 숨깁니다(visibility를 false로 설정).
Show widget숨긴 위젯이 보이도록 만듭니다(visibility를 true로 설정).

트리거

Tiled Image는 트리거를 실행하지 않습니다.

성능

Tiled Image는 이미지 그리기에 따라 다르기 때문에 대부분의 플랫폼에서 속도가 빠른 위젯으로 알려져 있습니다.
Tiled Image는 동일한 이미지를 여러 차례 반복해서 드로잉하면서 위젯 영역을 차지합니다. 따라서 작은 소스 이미지들이 다수의 이미지 그리기로 이어집니다.

이미지 그리기 성능에 대한 자세한 내용은 일반 UI 구성요소 성능 섹션을 참조하십시오.

예제

생성 코드

View 기본 클래스의 생성 코드를 보면 TouchGFX Designer에서 Tiled Image가 어떻게 설정되는지 알 수 있습니다.

mainViewBase.cpp
#include <gui_generated/main_screen/mainViewBase.hpp>
#include "BitmapDatabase.hpp"

mainViewBase::mainViewBase()
{

tiledImage.setBitmap(touchgfx::Bitmap(BITMAP_BLUE_TEXTURES_IRONGRIP_ID));
tiledImage.setPosition(35, 36, 50, 50);
tiledImage.setOffset(0, 0);

add(tiledImage);
}

void mainViewBase::setupScreen()
{

}
Tip
사용자 코드의 TiledImage 클래스에서 위의 함수와 나머지 함수들을 사용할 수 있습니다. 예를 들어 위젯의 모양을 바꾸고 싶다면 tiledImage.invalidate() 함수를 호출하여 강제로 다시 그리기를 해야 합니다.

사용자 코드

다음 코드 예제는handleTickEvent() 함수에서 오프셋을 연속으로 조정하여 타일 이미지에 대한 위치 변경을 애니메이션 처리하는 방법을 나타낸 것입니다.

mainView.cpp
#include <gui/main_screen/mainView.hpp>

mainView::mainView()
{

}

void mainView::setupScreen()
{
mainViewBase::setupScreen();
}

void mainView::tearDownScreen()
{
mainViewBase::tearDownScreen();
}

void mainView::handleTickEvent()
{
int x = tiledImage.getXOffset();
int y = tiledImage.getYOffset();
tiledImage.setOffset(x + 1, y + 1);
tiledImage.invalidate();
}

API 참조