Notice
Recent Posts
Recent Comments
Link
투케이2K
158. (AndroidStudio/android/java) picasso 피카소 라이브러리 사용해 이미지 표시 실시 본문
/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : AndroidStudio
개발 언어 : java
/* =========================== */
/* =========================== */
[소스 코드]
/** ========= [필요 퍼미션 및 라이브러리 설명] ========= **/
/**
* TODO [필요 퍼미션]
* <uses-permission android:name="android.permission.INTERNET"/>
* */
/**
* TODO [필요 라이브러리]
* implementation 'com.squareup.picasso:picasso:2.71828'
* */
/** ========= [drawable 폴더에 저장된 이미지 표시 일반 표시] ========= **/
Picasso.get()
.load(R.drawable.people_image) //TODO [표시할 이미지]
.error(R.drawable.white_app_default) //TODO [에러 발생 시 표시할 이미지]
.placeholder(R.drawable.white_app_default) //TODO [로딩 중 표시할 이미지]
.into(imageView); //TODO [이미지 뷰 지정]
/** ========= [drawable 폴더에 저장된 이미지 표시 원형 표시] ========= **/
Picasso.get()
.load(R.drawable.people_image) //TODO [표시할 이미지]
.error(R.drawable.white_app_default) //TODO [에러 발생 시 표시할 이미지]
.placeholder(R.drawable.white_app_default) //TODO [로딩 중 표시할 이미지]
.transform(new CircleTransform()) //TODO [원형으로 이미지 표시 지정]
.into(imageView); //TODO [이미지 뷰 지정]
/** ============= [인터넷 브라우저 이미지 표시 실시] ============= **/
final String reqUrl = "http://image.dongascience.com/Photo/2020/03/5bddba7b6574b95d37b6079c199d7101.jpg";
Picasso.get()
.load(reqUrl) //TODO [표시할 이미지]
.error(R.drawable.white_app_default) //TODO [에러 발생 시 표시할 이미지]
.placeholder(R.drawable.white_app_default) //TODO [로딩 중 표시할 이미지]
.into(imageView); //TODO [이미지 뷰 지정]
/** ============= [원형 이미지 만들기] ============= **/
class CircleTransform implements Transformation {
@Override
public Bitmap transform(Bitmap source) {
int size = Math.min(source.getWidth(), source.getHeight());
int x = (source.getWidth() - size) / 2;
int y = (source.getHeight() - size) / 2;
Bitmap squaredBitmap = Bitmap.createBitmap(source, x, y, size, size);
if(squaredBitmap != source){
source.recycle();
}
Bitmap bitmap = Bitmap.createBitmap(size, size, source.getConfig());
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint();
BitmapShader shader = new BitmapShader(squaredBitmap, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP);
paint.setShader(shader); paint.setAntiAlias(true);
float r = size / 2f;
canvas.drawCircle(r, r, r, paint); squaredBitmap.recycle();
return bitmap;
}
@Override
public String key() {
return "circle";
}
}
/* =========================== */
/* =========================== */
[결과 출력]
/* =========================== */
반응형
'Android' 카테고리의 다른 글
Comments