1)
우선 어제까지 진행한 부분이 main activity 였다.
안드로이드를 본격적으로 확장하기 위해서 main activity에 간단한 목차를 만들고,
어제까지 진행한 이미지 처리 부분을 sub activity로 만들었다.
btnImageSend_ = findViewById(R.id.btnImageSend);
btnImageSend_.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplicationContext(), SubActivity.class);
startActivity(intent);
}
});
이런 식으로 버튼을 클릭할 시 해당 sub activity로 넘어가도록 구현했다.
기존에 작업하던 main activity를 sub activity로 바꿔줄 때 유의할 점은,
layout_activity를 activity_main -> activity_sub 등, 해당 layout 이름으로 바꿔주어야 한다.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
...
}
2)
갤러리처럼 처리된 이미지를 불러오는 부분도 sub activity로 만들어 주었다.
이제 데이터베이스에 저장된 이미지 location 정보를 담고 있는 url 를 request 해서 이 sub activity의 image view에서 출력해 보려고 한다.
그에 앞서 url과 uri의 차이가 궁금해졌다.
url이란 특정한 리소스의 식별자이다. 책, 페이지, 문서 등의 식별자가 될 수 있다.
uri는 url에 포함되는 개념인데, 위에서 제시한 것과 같은 데이터에 HTTP 나 FTP 같은 방식을 사용해서 접근하는 특수한 식별자를 말한다.
3) Glide 라이브러리를 활용해서 서버 이미지 ImageView에 띄우기
처음에는 Drawable 이라는 클래스를 사용하려고 했었는데, 네트워크 접근이 복잡하여 조금 더 찾아봤다.
이미지를 서버 URL에 접근해서 가져오려고 하는 경우, http클라이언트를 이용해서 복잡해지는데,
이런 구현을 다 해놓은.. 라이브러리가 있다는 말이다 ㅠㅠ!
dependencies {
...
// Glide 라이브러리를 사용하기 위한 장치
implementation 'com.github.bumptech.glide:glide:4.9.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
}
우선 위와 같이 dependencies 에 Glide 라이브러리를 추가해준다.
button_ = findViewById(R.id.button1);
button_.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
imageView_ = findViewById(R.id.imageView);
Glide.with(view).load("https://62447fb4ad50.ngrok.io/media/dtmja_.png").into(imageView_);
}
});
그리고 이미지를 띄울 sub activity 에서 위 코드와 같이 url만 넣어주면 바로 ImageView에 바로 띄울 수 있다!!
다음 편은
갤러리처럼 DB 테이블에 있는 모든 URL을 가져와서 일정한 사이즈로 이미지를 띄워봐야겠다.
그리고 이미지 사이즈가 너무 큰 경우에는 load를 못해서,
Glide 라이브러리 내장 함수로 resize처리를 해줘야겠다.
REFERENCE
1. Glide 라이브러리 사용 참고. 안드로이드에 ImageView를 띄우는 여러 방법이 상세하게 정리되어 있다. (서버에 접근하는 경우와 그렇지 않은 경우 모두.)
[안드로이드/Android]유용한 라이브러리 - Glide (이미지 로딩 라이브러리)
우리가 ImageView에 사진을 띄우고자 하는 경우는 여러가지 입니다. 1. 안드로이드 앱 안의 drawable폴더의 리소스를 보여주는 경우 2 .안드로이드 디바이스 안에 저장되어있는 사진을 보여주는 경우(
gun0912.tistory.com
'모바일앱 프로젝트' 카테고리의 다른 글
Android + Django 로그인 기능 구현하기 (1) 회원 가입 (1) | 2021.03.12 |
---|---|
안드로이드에 서버 이미지로 갤러리 만들기 (0) | 2021.03.06 |
Django 클래스형 view 와 데이터베이스 model (0) | 2021.03.04 |
안드로이드에서 서버로 데이터 전송하기 (2) | 2021.03.04 |
MySql (0) | 2021.03.03 |
댓글