2026/02/14

오늘의 이야기





반응형







앱을 만들다가... 갤러리에서 이미지 받아오는 와서 사용하는 것을 구현하고 있는 중인데...


사진이 돌아간다. 흑~ 그래서 구글링 신에서 질문을 했다...


답... Exif 을 구현해서 사진을 돌리는 코드가 나오고... 


그것 보다는 조금 간결한 코드 구현 방법이 보인다.


http://bumptech.github.io/glide/doc/getting-started.html



 


Glide v4 : Getting Started


Basic Usage Loading images with Glide is easy and in many cases requires only a single line: Glide.with(fragment) .load(myUrl) .into(imageView); Cancelling loads you no longer need is simple too: Glide.with(fragment).clear(imageView); Although it's good


bumptech.github.io




glide 이건 뭔가 ???  쉬운 이미지 처리 방법 


 


백그라운드 스레드
배경 스레드에 이미지를 로드하는 것도 submit(int, int)다음을 사용하여 간단합니다 .

FutureTarget<Bitmap> futureTarget =
Glide.with(context)
.asBitmap()
.load(url)
.submit(width, height);

Bitmap bitmap = futureTarget.get();

이렇게 설명된 부분을 참조 하면 될 것 같다. 또 하나 방법은 바로 imageView 에 넣는 방법인데...  


알고 싶은 건 Bitmap 에 값을 넣는 것이니... 그런데... 백그라운드 스레드로 해야 한다는 부분을 주의 해야 했다.


그래서 아래 처럼 코딩해서 해소 끝...


            FutureTarget<Bitmap> futureTarget =
Glide.with(getApplicationContext())
.asBitmap()
.load(photoUri)
.submit(width, height);

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {

try {
Bitmap bitmap = futureTarget.get();

GroupImageBean bean1 = new GroupImageBean();
bean1.setImageGrpId(groupName);
bean1.setImageData(bitmap);
bean1.setOriginalUri(photoUri);
bean1.setImageUri(photoUri);
bitmapArrayList.add(bean1);

dbHandler = DBHandler.open(SetGroupActivity.this);
dbHandler.insertImage(bean1);
dbHandler.close();

getAdapterUpdateReceiptsList();
} catch (Exception e) {
e.printStackTrace();
}

}
}, 660);

 


다음에 또 이런걸 하게 될 지 모르지만... 


 


아래 코드는 갤러리에서 사진 선택할 수 있도록 호출 하기 위한 코드 ...


 


                Intent intent = new Intent();
intent.setType("image/*");
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true) // 이건 동시에 여러장 선택
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, REQUEST_CODE);

저렇게 호출하면 그걸 받아서 처리하는 부분은 


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
if(requestCode == REQUEST_CODE)
{
if(resultCode == RESULT_OK)
{
try{
InputStream in = getContentResolver().openInputStream(data.getData());

Bitmap img = BitmapFactory.decodeStream(in);
in.close();

imageView.setImageBitmap(img);
}catch(Exception e)
{

}
}
else if(resultCode == RESULT_CANCELED)
{
Toast.makeText(this, "사진 선택 취소", Toast.LENGTH_LONG).show();
}
}
}

이렇게 activity 호출 결과를 받아서 처리하면 됨...


오늘 도 즐~~~ 코딩...





반응형





























댓글 없음:

댓글 쓰기

오늘의 이야기

아무래도 휴대폰에 앱을 개발하는 일이다 보니, 문자 전송 같은 기본 기능을 이용하는 앱을 개발하는 일이 많기는 하다.  요새는 카카오톡등을 이용하거나, FCM 등을 이용해서 알림을 보내는 기능등을 구현해 보지만, 예전 방식 처럼 SMS 을 전송해 보는...