❓Q 어떤부분인가❓
Android Studio Programming을 하다보면 어떤 이미지 뷰에 갤러리 사진을 불러와서 띄우고 싶을 때가 있다.
👉 나같은 경우 갤러리 사진을 가져와서 내 정보 페이지 프로필 사진에 띄우는 경우
✔️ 우선, 내가 사진을 띄울 ImageView 가 무엇인지 알아야 한다
나의 ImageView는 Profile이라는 이름을 가진 친구였다
👇 MyprofileTab.java 👇
ImageView imageView = findViewById(R.id.profile);
//profile imageView 에 사진 넣는 경우
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, REQUEST_CODE);
}
});
이미지 뷰를 클릭하면 intent 실행
✔️ onActivityResult 함수로 넘어가게 된다
👇 onActivityResult 함수, 코드 아래에 추가해준다 👇
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//이미지 뷰를 클릭하면 시작되는 함수
if(requestCode== REQUEST_CODE && resultCode==RESULT_OK && data!=null) {
//response에 getData , return data 부분 추가해주어야 한다
selectedImage = data.getData();
Uri photoUri = data.getData();
Bitmap bitmap = null;
//bitmap 이용
try {
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(),photoUri);
bitmap = rotateImage(bitmap, 90);
//사진이 돌아가 있는 경우 rotateImage 함수 이용해서 사진 회전 가능
} catch (IOException e) {
e.printStackTrace();
}
//이미지뷰에 이미지 불러오기
imageView.setImageBitmap(bitmap);
//아래 커서 이용해서 사진의 경로 불러오기
Cursor cursor = getContentResolver().query(Uri.parse(selectedImage.toString()), null, null, null, null);
assert cursor != null;
cursor.moveToFirst();
mediaPath = cursor.getString(cursor.getColumnIndex(MediaStore.MediaColumns.DATA));
Log.d("경로 확인 >> ", "$selectedImg / $absolutePath");
}else{
Toast.makeText(this, "사진 업로드 실패", Toast.LENGTH_LONG).show();
}
}
✔️ Bitmap 이용
이미지 관련한 코드들을 열심히 구글링 해보니 bitmap을 많이 이용하더라!
나같은 경우 이미지를 불러오면 사진이 돌아가 있어서
이미지를 rotate해주는 코드도 따로 만들어줬다 👇👇
public static Bitmap rotateImage(Bitmap source, float angle) {
Matrix matrix = new Matrix();
matrix.postRotate(angle);
return Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(),
matrix, true);
}
👾 이 세가지 코드를 같은 java file에 차곡차곡 쌓아준다면 이미지 보여주기 성공!
'Android' 카테고리의 다른 글
@Multipart 이용 시 이미지 업로드가 안돼요!, 내용은 안가고 껍데기만? (0) | 2020.09.28 |
---|---|
@Multipart 이용하여 이미지 서버로 업로드하기 (1) | 2020.09.28 |
Glide : 안드로이드 이미지 Url에서 불러와서 이미지뷰에 보여주기 (0) | 2020.09.28 |