다음을 통해 공유


ImageDecoder 클래스

정의

인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 BitmapDrawable 변환하기 위한 클래스입니다.

[Android.Runtime.Register("android/graphics/ImageDecoder", ApiSince=28, DoNotGenerateAcw=true)]
public sealed class ImageDecoder : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.IAutoCloseable
[<Android.Runtime.Register("android/graphics/ImageDecoder", ApiSince=28, DoNotGenerateAcw=true)>]
type ImageDecoder = class
    inherit Object
    interface IAutoCloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
상속
ImageDecoder
특성
구현

설명

인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 BitmapDrawable 변환하기 위한 클래스입니다.

사용하려면 먼저 오버로드 중 createSource 하나를 사용하여 만듭니 Source Source 다. 예를 들어 , 에서 Uri디코딩하려면 결과를 호출 #createSource(ContentResolver, Uri) 하고 다음으로 #decodeDrawable(Source) 전달합니다 #decodeBitmap(Source).

File file = new File(...);
             ImageDecoder.Source source = ImageDecoder.createSource(file);
             Drawable drawable = ImageDecoder.decodeDrawable(source);

기본 설정을 변경하려면 다음을 전달 Source Source 합니다#decodeBitmap(Source, OnHeaderDecodedListener).OnHeaderDecodedListener OnHeaderDecodedListener #decodeDrawable(Source, OnHeaderDecodedListener) 예를 들어 원본 이미지의 너비와 높이의 절반으로 샘플링된 이미지를 만들려면 다음 내부OnHeaderDecodedListener#onHeaderDecoded onHeaderDecoded를 호출 #setTargetSampleSize setTargetSampleSize(2) 합니다.

OnHeaderDecodedListener listener = new OnHeaderDecodedListener() {
                 public void onHeaderDecoded(ImageDecoder decoder, ImageInfo info, Source source) {
                     decoder.setTargetSampleSize(2);
                 }
             };
             Drawable drawable = ImageDecoder.decodeDrawable(source, listener);

ImageInfo ImageInfo 코딩된 이미지에 대한 정보(예: 너비 및 높이)가 포함되며Source Source, 단일 OnHeaderDecodedListener OnHeaderDecodedListener 이미지를 여러 Source Source 개체와 함께 사용하는 경우 특정 Source Source 이미지와 일치하도록 사용할 수 있습니다.

OnHeaderDecodedListener OnHeaderDecodedListener 람다로 구현할 수도 있습니다.

Drawable drawable = ImageDecoder.decodeDrawable(source, (decoder, info, src) -&gt; {
                 decoder.setTargetSampleSize(2);
             });

인코딩된 이미지가 애니메이션 GIF 으로 표시되거나 WEBP애니메이션 #decodeDrawable decodeDrawable 이 적용된 AnimatedImageDrawable경우 . 애니메이션을 시작하려면 다음을 호출 AnimatedImageDrawable#start AnimatedImageDrawable.start()합니다.

Drawable drawable = ImageDecoder.decodeDrawable(source);
             if (drawable instanceof AnimatedImageDrawable) {
                 ((AnimatedImageDrawable) drawable).start();
             }

기본적으로 Bitmap 만든 ImageDecoder 사람(내부에 Drawable있는 항목 포함)은 변경할 수 없으며(즉 Bitmap#isMutable Bitmap.isMutable() , 반환 false) 일반적으로 포함 ConfigBitmap.Config#HARDWARE됩니다. 이러한 속성은 (호환 #decodeBitmap(Source) 및 호환만 가능)으로 #setMutableRequired setMutableRequired(true) 변경할 수 있지만 #setAllocator최종 반환된 개체의 변경 가능성에 관계없이 사용자 지정 효과를 적용 PostProcessor#setPostProcessor setPostProcessor수도 #decodeBitmap(Source, OnHeaderDecodedListener)있습니다. A는 PostProcessor 람다일 수도 있습니다.

Drawable drawable = ImageDecoder.decodeDrawable(source, (decoder, info, src) -&gt; {
                 decoder.setPostProcessor((canvas) -&gt; {
                         // This will create rounded corners.
                         Path path = new Path();
                         path.setFillType(Path.FillType.INVERSE_EVEN_ODD);
                         int width = canvas.getWidth();
                         int height = canvas.getHeight();
                         path.addRoundRect(0, 0, width, height, 20, 20, Path.Direction.CW);
                         Paint paint = new Paint();
                         paint.setAntiAlias(true);
                         paint.setColor(Color.TRANSPARENT);
                         paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));
                         canvas.drawPath(path, paint);
                         return PixelFormat.TRANSLUCENT;
                 });
             });

인코딩된 이미지가 불완전하거나 오류가 포함되어 있거나 디코딩 DecodeException DecodeException 중에 발생하는 경우 Exception throw됩니다. 경우에 따라 이미지의 ImageDecoder 일부를 디코딩했을 수 있습니다. 부분 이미지를 OnPartialImageListener OnPartialImageListener 표시하려면 에 전달 #setOnPartialImageListener setOnPartialImageListener되어야 합니다. 예시:

Drawable drawable = ImageDecoder.decodeDrawable(source, (decoder, info, src) -&gt; {
                 decoder.setOnPartialImageListener((DecodeException e) -&gt; {
                         // Returning true indicates to create a Drawable or Bitmap even
                         // if the whole image could not be decoded. Any remaining lines
                         // will be blank.
                         return true;
                 });
             });

에 대한 android.graphics.ImageDecoderJava 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

필드

AllocatorDefault
사용되지 않음.

픽셀 메모리에 대한 기본 할당을 사용합니다.

AllocatorHardware
사용되지 않음.

을 요구합니다 Bitmap.Config#HARDWAREBitmap.

AllocatorSharedMemory
사용되지 않음.

픽셀 메모리에 공유 메모리를 사용합니다.

AllocatorSoftware
사용되지 않음.

픽셀 메모리에 소프트웨어 할당을 사용합니다.

MemoryPolicyDefault
사용되지 않음.

내부Bitmap에서 가장 자연스러운 Bitmap.Config 사용을 사용합니다.

MemoryPolicyLowRam
사용되지 않음.

일부 이미지 품질의 비용으로 조밀도 Bitmap.Config 를 사용하여 가능하면 메모리를 저장합니다.

속성

Class

Object런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
Crop

자르기 사각형(설정된 경우)을 반환합니다. -또는- 크기 조정된 이미지의 출력을 subset 잘라 내세요.

DecodeAsAlphaMaskEnabled

단일 채널 입력을 알파로 처리할지 여부를 반환합니다. -또는- 출력을 알파 마스크로 처리할지 여부를 지정합니다.

Handle

기본 Android 인스턴스에 대한 핸들입니다.

(다음에서 상속됨 Object)
JniIdentityHashCode

인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 BitmapDrawable 변환하기 위한 클래스입니다.

(다음에서 상속됨 Object)
JniPeerMembers

인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 BitmapDrawable 변환하기 위한 클래스입니다.

MemorySizePolicy

디코딩된 Bitmap에 대한 메모리 정책을 검색합니다. -또는- 디코딩된 Bitmap메모리 정책을 지정합니다.

MutableRequired

디코딩 Bitmap 된 변경이 가능한지 여부를 반환합니다. -또는- 변경할 수 있는지 여부를 Bitmap 지정합니다.

OnPartialImageListener

이 개체의 값을 OnPartialImageListener 설정(바꾸기)합니다.

PeerReference

인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 BitmapDrawable 변환하기 위한 클래스입니다.

(다음에서 상속됨 Object)
PostProcessor

현재 집합을 PostProcessor 반환합니다. -또는- 디코딩 및 크기 조정 후 이미지를 수정합니다.

ThresholdClass

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

(다음에서 상속됨 Object)
ThresholdType

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

(다음에서 상속됨 Object)
UnpremultipliedRequired

미리 설명되지 않은 픽셀이 있는지 여부를 Bitmap 반환합니다. -또는- 미리 설명되지 않은 픽셀이 Bitmap 있어야 하는지 여부를 지정합니다.

메서드

Clone()

이 개체의 복사본을 만들고 반환합니다.

(다음에서 상속됨 Object)
Close()

이 리소스를 닫고 기본 리소스를 포기합니다.

CreateSource(AssetManager, String)

에서 android.net.UriSource 만들기

CreateSource(Byte[], Int32, Int32)

에서 android.net.UriSource 만들기

CreateSource(Byte[])

에서 android.net.UriSource 만들기

CreateSource(ByteBuffer)

에서 android.net.UriSource 만들기

CreateSource(ContentResolver, Uri)

에서 android.net.UriSource 만들기

CreateSource(File)

에서 android.net.UriSource 만들기

CreateSource(ICallable)

에서 android.net.UriSource 만들기

CreateSource(Resources, Int32)

에서 android.net.UriSource 만들기

DecodeBitmap(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener)

#decodeBitmap(Source, OnHeaderDecodedListener)을 참조하세요.

DecodeBitmap(ImageDecoder+Source)

#decodeBitmap(Source, OnHeaderDecodedListener)을 참조하세요.

DecodeDrawable(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener)

#decodeDrawable(Source, OnHeaderDecodedListener)을 참조하세요.

DecodeDrawable(ImageDecoder+Source)

#decodeDrawable(Source, OnHeaderDecodedListener)을 참조하세요.

Dispose()

인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 BitmapDrawable 변환하기 위한 클래스입니다.

(다음에서 상속됨 Object)
Dispose(Boolean)

인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 BitmapDrawable 변환하기 위한 클래스입니다.

(다음에서 상속됨 Object)
Equals(Object)

다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다.

(다음에서 상속됨 Object)
GetHashCode()

개체에 대한 해시 코드 값을 반환합니다.

(다음에서 상속됨 Object)
IsMimeTypeSupported(String)

지정된 MIME 형식이 이 클래스에서 디코딩할 수 있는 지원되는 파일 형식이면 반환합니다.

JavaFinalize()

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

(다음에서 상속됨 Object)
Notify()

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

(다음에서 상속됨 Object)
NotifyAll()

이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다.

(다음에서 상속됨 Object)
SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
SetTargetColorSpace(ColorSpace)

출력에 원하는 ColorSpace 값을 지정합니다.

SetTargetSampleSize(Int32)

sampleSize를 사용하여 대상 크기를 설정합니다.

SetTargetSize(Int32, Int32)

출력 Drawable 의 크기를 지정하거나 Bitmap.

ToArray<T>()

인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 BitmapDrawable 변환하기 위한 클래스입니다.

(다음에서 상속됨 Object)
ToString()

개체의 문자열 표현을 반환합니다.

(다음에서 상속됨 Object)
UnregisterFromRuntime()

인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 BitmapDrawable 변환하기 위한 클래스입니다.

(다음에서 상속됨 Object)
Wait()

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 <><중단/종료>합니다.>

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

(다음에서 상속됨 Object)

이벤트

PartialImage

인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 BitmapDrawable 변환하기 위한 클래스입니다.

명시적 인터페이스 구현

IJavaPeerable.Disposed()

인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 BitmapDrawable 변환하기 위한 클래스입니다.

(다음에서 상속됨 Object)
IJavaPeerable.DisposeUnlessReferenced()

인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 BitmapDrawable 변환하기 위한 클래스입니다.

(다음에서 상속됨 Object)
IJavaPeerable.Finalized()

인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 BitmapDrawable 변환하기 위한 클래스입니다.

(다음에서 상속됨 Object)
IJavaPeerable.JniManagedPeerState

인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 BitmapDrawable 변환하기 위한 클래스입니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 BitmapDrawable 변환하기 위한 클래스입니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 BitmapDrawable 변환하기 위한 클래스입니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 BitmapDrawable 변환하기 위한 클래스입니다.

(다음에서 상속됨 Object)

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 BitmapDrawable 변환하기 위한 클래스입니다.

GetJniTypeName(IJavaPeerable)

인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 BitmapDrawable 변환하기 위한 클래스입니다.

적용 대상