초보 dogfootruler

6. 안드로이드 Picasso 라이브러리 활용하기(vs Glide) 본문

StudyRoom;/Android;

6. 안드로이드 Picasso 라이브러리 활용하기(vs Glide)

킹갓우부 2020. 9. 28. 02:17

오랜만에 블로그에 글을 쓴다. 

친구랑 어플을 만들고 있는데, 이미지뷰를 쓸 일이 있어 바로 Glide를 사용했는데

되질 않았다. 수많은 오류... 몇달전에도 사용한 라이브러리는 먹통이 되어버렸다.

찾아보니 최근 Glide가 어노테이션 프로세서를 사용했었는데, 사용방법이 또 바뀌었다.

어이가 없네 ㅎㅎ

어노테이션 프로세서란? 사용자가 만든 어노테이션 코드를 처리하는 거라고 하는데, 감이 잘 안잡힌다.

어쨋든, 저번에도 사용하기도 했고 빨리 사용해야 하는데,

Glide가 오류가 뜨고 GlideApp에 이것저것 붙여봐도 되질 않아

임시방편으로 Picasso를 사용했다. 나중에 Glide오류 해결 글도 써야 할 것 같다.

 

간단 Glide vs Picasso

Glide   Picasso
빠름 속도 느림
많이 차지함 메모리 적게 차지함
많음 기능수 적음

간단하게 정리해보았다.

상황에 따라 사용하면 괜찮을것 같다.

 

1. Picasso 버전 확인

Picasso Github 주소 : github.com/square/picasso

 

square/picasso

A powerful image downloading and caching library for Android - square/picasso

github.com

얘네들도 자신들의 최신버전을 사용하라고 권장한다.

내가 가장 최근에 본 버전은 2.71828이다. 

 

2. Picasso Implementation

APP단의 build.gradle로 가자.

피카소를 Implementation해주자!

여기까지 했다면, 이미 반은 된거다

implementation 'com.squareup.picasso:picasso:2.71828'

3. 레이아웃 Imageview

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

    <ImageView
        android:id="@+id/iv_ex1"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_centerInParent="true"/>

    <ImageView
        android:id="@+id/iv_ex2"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_below="@id/iv_ex1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"/>

</RelativeLayout>

간단하게 ImageView를 만들었다.

 

4. MainActivity picasso Method

package kr.ac.kang.expicasso;

import androidx.appcompat.app.AppCompatActivity;

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

import com.squareup.picasso.Picasso;

public class MainActivity extends AppCompatActivity {

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

        ImageView mImage1 = (ImageView) findViewById(R.id.iv_ex1);
        ImageView mImage2 = (ImageView) findViewById(R.id.iv_ex2);

        Picasso.get()
                .load(R.drawable.pic1).into(mImage1);

        Picasso.get()
                .load("http://android.example.com")
                .error(R.drawable.ic_baseline_error_24)
                .into(mImage2);
    }
}

가장 간단한건,

load() : 이미지 경로

into() : 받아온 이미지 받을 공간

이 두가지를 사용한다.

error() : 에러시, 나올 이미지 

resize() : 이미지 크기 조정

등등 다양한 메서드가 있다.

왼쪽의 이미지는 에러나올떄 나오는 이미지 이다.

오른쪽 폰 화면을 보면, url경로가 잘못되었기에, 에러이미지가 나온다.

오늘은 여기까지 정리를 하겠다.

다음에는 Glide 오류 해결을 올리도록 노력해야겠다.

Comments