Class OverlayImage


  • @AnyThread
    public abstract class OverlayImage
    extends java.lang.Object
    오버레이에서 사용하는 비트맵 이미지를 나타내는 불변 클래스. 이 클래스의 인스턴스는 직접 생성할 수 없고 팩토리 메서드를 이용해야 합니다. 리소스, 에셋, 비트맵, 뷰 등으로부터 인스턴스를 생성할 수 있습니다.

    이 클래스는 비트맵을 다루므로 사용시 메모리 관리에 유의해야 합니다다. OverlayImage 객체 자체는 fromBitmap(Bitmap)이나 fromView(View)로부터 생성되지 않은 한 비트맵 객체를 가지고 있지 않으며, 오직 비트맵을 로딩하는 방법만을 제공합니다. 따라서 객체 생성 자체는 가볍고 메모리도 적게 소모됩니다. 대신 이 객체를 사용하는 오버레이가 화면에 나타날 때 getBitmap(Context)이 호출되어 비트맵이 생성되고 메모리가 소모되는데, 여러 오버레이가 동일한 OverlayImage 객체를 참조할 경우 비트맵이 공유되어 메모리가 효율적으로 사용됩니다.

    따라서 여러 오버레이에 같은 이미지를 사용할 경우 인스턴스를 하나만 만들어 공유해야 합니다. 단, fromResource(int)fromAsset(String)으로부터 객체를 만들었다면, 객체가 나타내는 리소스와 에셋이 동일할 경우 인스턴스가 다르더라도 동일한 비트맵이 공유됩니다.
    • Field Detail

      • id

        @NonNull
        public final java.lang.String id
        식별자.
    • Method Detail

      • fromView

        @NonNull
        public static OverlayImage fromView​(@NonNull
                                            android.view.View view)
        View로부터 OverlayImage 객체를 생성합니다.
        Parameters:
        view - 비트맵을 생성할 뷰 객체.
        Returns:
        view에 대한 OverlayImage 객체.
      • fromBitmap

        @NonNull
        public static OverlayImage fromBitmap​(@NonNull
                                              android.graphics.Bitmap bitmap)
        Bitmap으로부터 OverlayImage 객체를 생성합니다. OverlayImage 객체를 생성한 후에 bitmap을 변경해서는 안 됩니다.
        Parameters:
        bitmap - 오버레이에 사용할 비트맵 객체.
        Returns:
        bitmap에 대한 OverlayImage 객체.
      • fromResource

        @NonNull
        public static OverlayImage fromResource​(@DrawableRes
                                                int resourceId)
        드로어블 리소스로부터 OverlayImage 객체를 생성합니다.
        Parameters:
        resourceId - 드로러블 리소스의 ID.
        Returns:
        resourceId에 대한 OverlayImage 객체.
      • fromAsset

        @NonNull
        public static OverlayImage fromAsset​(@NonNull
                                             java.lang.String assetName)
        앱의 asset에 존재하는 이미지 파일로부터 OverlayImage 객체를 생성합니다.
        Parameters:
        assetName - 이미지 파일의 이름.
        Returns:
        resourceId에 대한 OverlayImage 객체.
      • fromPrivateFile

        @NonNull
        public static OverlayImage fromPrivateFile​(@NonNull
                                                   java.lang.String fileName)
        Context.openFileInput(String)으로 접근 가능한 이미지 파일로부터 OverlayImage 객체를 생성합니다.
        Parameters:
        fileName - 이미지 파일의 이름.
        Returns:
        fileName에 대한 OverlayImage 객체.
      • fromPath

        @NonNull
        public static OverlayImage fromPath​(@NonNull
                                            java.lang.String absolutePath)
        absolutePath에 위치한 이미지 파일로부터 OverlayImage 객체를 생성합니다.
        Parameters:
        absolutePath - 이미지 파일에 대한 경로.
        Returns:
        absolutePath에 대한 OverlayImage 객체.
      • fromFile

        @NonNull
        public static OverlayImage fromFile​(@NonNull
                                            java.io.File file)
        이미지 파일로부터 OverlayImage 객체를 생성합니다.
        Parameters:
        file - 이미지 파일.
        Returns:
        file에 대한 OverlayImage 객체.
      • getBitmap

        @Nullable
        public abstract android.graphics.Bitmap getBitmap​(@NonNull
                                                          android.content.Context context)
        이미지에 대한 Bitmap을 반환합니다. 만약 필요한 경우 이 메서드가 호출될 때 비트맵이 생성됩니다.
        Parameters:
        context - Context 객체.
        Returns:
        Bitmap 객체.
      • getIntrinsicWidth

        @Px
        public int getIntrinsicWidth​(@NonNull
                                     android.content.Context context)
        이미지의 너비를 반환합니다. 비트맵을 디코딩하기 전에는 너비를 알 수 없는 경우에는 0이 반환됩니다.
        Parameters:
        context - Context 객체.
        Returns:
        비트맵의 너비. 픽셀 단위. 너비를 알 수 없는 경우 0.
      • getIntrinsicHeight

        @Px
        public int getIntrinsicHeight​(@NonNull
                                      android.content.Context context)
        이미지의 높이를 반환합니다. 비트맵을 디코딩하기 전에는 높이를 알 수 없는 경우에는 0이 반환됩니다.
        Parameters:
        context - Context 객체.
        Returns:
        비트맵의 높이. 픽셀 단위. 높이를 알 수 없는 경우 0.
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        @NonNull
        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object