Computer >> 컴퓨터 >  >> 프로그래밍 >> Android

Android Picasso 라이브러리로 이미지 다운로드하는 방법 완벽 가이드

Picasso는 Square에서 개발한 안드로이드용 오픈소스 이미지 로딩 라이브러리입니다. URL을 통해 이미지를 다운로드하고 캐싱하며 ImageView에 표시하는 과정을 단 몇 줄의 코드로 처리할 수 있어 안드로이드 개발자들에게 널리 사용되고 있습니다.

이 글에서는 Picasso 라이브러리를 사용해 인터넷에서 이미지를 다운로드하여 화면에 표시하는 방법을 단계별로 알아보겠습니다.

1단계: 새 프로젝트 생성

Android Studio를 실행하고 File → New Project 메뉴로 이동한 후, 새 프로젝트 생성에 필요한 모든 정보를 입력하여 프로젝트를 만듭니다.

그다음 build.gradle(Module: app) 파일에 아래 의존성을 추가합니다.

implementation 'com.squareup.picasso:picasso:2.4.0'

의존성 추가 후에는 반드시 Sync Now를 클릭하여 Gradle 동기화를 진행해야 합니다.

2단계: 레이아웃 작성 (activity_main.xml)

res/layout/activity_main.xml 파일에 아래 코드를 추가합니다. 화면 상단에는 이미지를 표시할 ImageView, 하단에는 다운로드 버튼을 배치합니다.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="4dp"
    tools:context=".MainActivity">
    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/btnDownload"/>
    <Button
        android:id="@+id/btnDownload"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAlignment="center"
        android:layout_alignParentBottom="true"
        android:text="Download Image"/>
</RelativeLayout>

3단계: MainActivity 코드 작성

src/MainActivity.java 파일에 아래 코드를 추가합니다. 버튼을 클릭하면 Picasso가 지정된 URL에서 이미지를 다운로드하여 ImageView에 자동으로 로딩합니다.

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import com.squareup.picasso.Picasso;
public class MainActivity extends AppCompatActivity {
    ImageView imageView;
    Button btnDownload;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView = findViewById(R.id.imageView);
        btnDownload = findViewById(R.id.btnDownload);
        btnDownload.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Picasso.with(MainActivity.this)
                    .load("https://images.pexels.com/photos/1212487/pexels-photo1212487.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260")
                    .into(imageView);
            }
        });
    }
}

Picasso의 핵심은 .load().into() 메서드입니다. load()into()

4단계: 인터넷 권한 설정 (AndroidManifest.xml)

네트워크에서 이미지를 다운로드하려면 인터넷 권한이 필요합니다. androidManifest.xml 파일에 아래 코드를 추가합니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample">
    <uses-permission android:name="android.permission.INTERNET"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    </application>
</manifest>

앱 실행 및 결과 확인

이제 애플리케이션을 실행해 보겠습니다. 실제 안드로이드 기기를 컴퓨터에 연결했다고 가정합니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 연 후, 툴바의 Run(실행) 아이콘을 클릭합니다. 실행 옵션에서 본인의 모바일 기기를 선택하면, 기기 화면에 앱의 기본 화면이 표시됩니다.

Android Picasso 라이브러리로 이미지 다운로드하는 방법 완벽 가이드

Download Image 버튼을 누르면 Picasso가 해당 URL의 이미지를 다운로드하여 화면에 표시합니다. 이처럼 Picasso를 활용하면 복잡한 네트워크 처리 코드 없이도 손쉽게 이미지를 로딩할 수 있습니다.