수색…


소개

프레스코 는 안드로이드 응용 프로그램에서 이미지를 표시하는 강력한 시스템입니다.

안드로이드 4.x 이하에서는 Fresco가 이미지를 안드로이드 메모리 (ashmem이라고 불리는)의 특별한 영역에 넣습니다. 이렇게하면 응용 프로그램을 더 빨리 실행할 수 있으며, 두려운 OutOfMemoryError가 훨씬 덜 자주 발생합니다.

Fresco는 JPEG 스트리밍도 지원합니다.

비고

앱 수준 build.gradle 파일에서 의존성을 설정하는 방법은 다음과 같습니다.

dependencies {
    // Your app's other dependencies.
    compile 'com.facebook.fresco:fresco:0.14.1' // Or a newer version if available.
}

자세한 내용은 여기를 참조하십시오 .

프레스코와 함께 시작하기

먼저, 비고 섹션에 표시된대로 Fresco를 build.gradle 추가하십시오.

애니메이션 GIF 또는 WebP 지원과 같은 추가 기능이 필요한 경우 해당 프레스코 아티팩트 도 추가해야합니다.

프레스코 화를 초기화해야합니다. 이 작업은 1 번만 수행해야하므로 Application 초기화를 Application 하는 것이 좋습니다. 예를 들면 다음과 같습니다.

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Fresco.initialize(this);
    }
}

서버에서 원격 이미지를로드하려면 앱에 internt 권한이 필요합니다. AndroidManifest.xml 추가하기 만하면됩니다.

<uses-permission android:name="android.permission.INTERNET" />

그런 다음 XML 레이아웃에 SimpleDraweeView 를 추가합니다. 프레스코는 다른 크기 (자리 표시 자 이미지, 오류 이미지, 실제 이미지 등)가 여러 이미지 일 수 있으므로 이미지 크기의 wrap_content 를 지원하지 않습니다.

따라서 고정 치수 (또는 match_parent )가있는 SimpleDraweeView 를 추가 할 수 있습니다.

<com.facebook.drawee.view.SimpleDraweeView
    android:id="@+id/my_image_view"
    android:layout_width="120dp"
    android:layout_height="120dp"
    fresco:placeholderImage="@drawable/placeholder" />

또는 이미지의 종횡비 를 제공하십시오.

<com.facebook.drawee.view.SimpleDraweeView
    android:id="@+id/my_image_view"
    android:layout_width="120dp"
    android:layout_height="wrap_content"
    fresco:viewAspectRatio="1.33"
    fresco:placeholderImage="@drawable/placeholder" />

마지막으로 Java에서 이미지 URI를 설정할 수 있습니다.

SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);
draweeView.setImageURI("http://yourdomain.com/yourimage.jpg");

그게 다야! 네트워크 이미지를 가져올 때까지 자리 표시 자 드로어 블을보아야합니다.

프레스 코에서 OkHttp 3 사용하기

첫째, 일반 프레스코 Gradle을 의존성뿐만 아니라, 당신은 당신에 OkHttp 3 종속성을 추가해야 build.gradle :

compile "com.facebook.fresco:imagepipeline-okhttp3:1.2.0" // Or a newer version.

Fresco를 초기화 할 때 (대개 사용자 지정 Application 구현에서) 이제 OkHttp 클라이언트를 지정할 수 있습니다.

OkHttpClient okHttpClient = new OkHttpClient(); // Build on your own OkHttpClient.

Context context = ... // Your Application context.
ImagePipelineConfig config = OkHttpImagePipelineConfigFactory
        .newBuilder(context, okHttpClient)
        .build();
Fresco.initialize(context, config);

DraweeController를 사용하여 프레스코 화 된 JPEG 스트리밍

이 예에서는 이미 앱에 Fresco를 추가했다고 가정합니다 ( 이 예 참조).

SimpleDraweeView img = new SimpleDraweeView(context);
ImageRequest request = ImageRequestBuilder
        .newBuilderWithSource(Uri.parse("http://example.com/image.png"))
        .setProgressiveRenderingEnabled(true) // This is where the magic happens.
        .build();

DraweeController controller = Fresco.newDraweeControllerBuilder()
        .setImageRequest(request)
        .setOldController(img.getController()) // Get the current controller from our SimpleDraweeView.
        .build();

img.setController(controller); // Set the new controller to the SimpleDraweeView to enable progressive JPEGs.


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow