Android

이미지 처리를 위한 Glide 라이브러리 사용법

yugyeong 2023. 2. 7. 13:16

Glide 라이브러리는 이미지 처리를 할 때 사용한다.

 

https://github.com/bumptech/glide

 

GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling

An image loading and caching library for Android focused on smooth scrolling - GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling

github.com

 

1. 아래 링크 게시글을 참고하여서 안드로이드 스튜디오에서 네트워크 통신이 되도록 설정한다.

https://yu1129.tistory.com/214

 

애뮬레이터에서 네트워크 통신 되도록 설정하는 방법

애뮬레이터에서 네트워크 통신이 되도록 하기위한 AndroidManifest.xml 파일 설정법 1. AndroidManifest.xml 파일로 이동하여서 인터넷 권한을 설정해준다. 2. 새로운 xml 파일을 생성한다. 파일명은 network_sec

yu1129.tistory.com

 

 

2. build.gradle 파일에 dependencies 코드를 작성한다.

 

implementation 'com.github.bumptech.glide:glide:4.14.2'
annotationProcessor 'com.github.bumptech.glide:compiler:4.14.2'

 

 

3. 코드 작성

Glide 라이브러리의 코드 사용법은 

Glide.with( 액티비티 ).load( 이미지 URL 주소 ).into( 나타낼 이미지뷰 아이디 );

로 작성한다.

 

아래 코드에서 사용한 placeholder 코드는 네트워크를 통해 이미지를 가져올 때, 로딩되는 시간동안 이미지뷰에 나타낼 이미지를 의미한다.

Glide.with(MainActivity.this).load(URL1).placeholder(R.drawable.baseline_person_outline_24).into(imageView1);

 

public class MainActivity extends AppCompatActivity {

    ImageView imageView1;
    ImageView imageView2;
    ImageView imageView3;

    final String URL1 = "https://via.placeholder.com/600/92c952";
    final String URL2 = "https://block-yh-test2.s3.ap-northeast-2.amazonaws.com/2023-01-13T03_31_12.564141.jpeg";
    final String URL3 = "https://block-yh-test2.s3.ap-northeast-2.amazonaws.com/2023-01-13T03_46_46.079772.jpg";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        imageView1 = findViewById(R.id.imageView1);
        imageView2 = findViewById(R.id.imageView2);
        imageView3 = findViewById(R.id.imageView3);

        Glide.with(MainActivity.this).load(URL1).placeholder(R.drawable.baseline_person_outline_24).into(imageView1);
        Glide.with(MainActivity.this).load(URL2).into(imageView2);
        Glide.with(MainActivity.this).load(URL3).into(imageView3);


    }
}

 

실행 결과

 

 

 

전체 코드

main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:scaleType="centerCrop"
            app:srcCompat="@drawable/baseline_person_outline_24" />

        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="200dp"
            android:layout_height="150dp"
            app:srcCompat="@drawable/baseline_person_outline_24" />

        <ImageView
            android:id="@+id/imageView3"
            android:layout_width="250dp"
            android:layout_height="200dp"
            app:srcCompat="@drawable/baseline_person_outline_24" />
    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

 

Mainactivity.java

package com.dbrud1032.glide;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.ImageView;

import com.bumptech.glide.Glide;

public class MainActivity extends AppCompatActivity {

    ImageView imageView1;
    ImageView imageView2;
    ImageView imageView3;

    final String URL1 = "https://via.placeholder.com/600/92c952";
    final String URL2 = "https://block-yh-test2.s3.ap-northeast-2.amazonaws.com/2023-01-13T03_31_12.564141.jpeg";
    final String URL3 = "https://block-yh-test2.s3.ap-northeast-2.amazonaws.com/2023-01-13T03_46_46.079772.jpg";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        imageView1 = findViewById(R.id.imageView1);
        imageView2 = findViewById(R.id.imageView2);
        imageView3 = findViewById(R.id.imageView3);

        Glide.with(MainActivity.this).load(URL1).placeholder(R.drawable.baseline_person_outline_24).into(imageView1);
        Glide.with(MainActivity.this).load(URL2).into(imageView2);
        Glide.with(MainActivity.this).load(URL3).into(imageView3);


    }
}