안드로이드 개발
DB에서 가져온 String 데이터로 안드로이드에서 Image Source로 변경시키기
Per ardua ad astra !
2021. 12. 7. 12:03
1. 서버에서 전달받는 String 형태
2. 안드로이드 파일
3. 처리
형태
int imageResource = getResources().getIdentifier( name: "파일명", defType: "폴더명",
defPackage: getContext().getPackageName());
imageView.setImageResource(imageResource);
ex) 예시
int imageResource = getResources().getIdentifier("profile_basic1", "drawable", getContext().getPackageName())
imageView.setImageResource(imageResource);
(1) getResources()
특별한 객체 생성 없이 get*()으로 호출할 수 있는 경우는 Context가 지원해주는 메소드기 때문이다.
Activity는 Context의 자식이므로 자식들은 이 기능을 모두 사용할 수 있는 것이라고 한다.
- getResources의 반환형 Resources, 이 클래스를 이용하여 애플리 케이션의 리소스에 엑세스할 수 있다.
- get*()을 통해서 String, int, drawable 등 여러 객체로 값을 반환 받을 수 있다.
- getDrawable()과 getIdentifier()를 가장 많이 사용하는 것 같다.
사용 예제
Drawable drawable = getResources.getDrawable(R.drawable.파일명)
(2) getIdentifier()
=> 해당 Resources에 있는 어떤 한 리소스의 고유 ID(식별자) 값을 가져온다.
getResources().getIdentifier(파일명, 디렉토리명, 패키지명);형태인데,
파일명에 디렉토리명, 패키지명을 다 넣고, 2번째,3번째 인자에는 null값을 넣어도 되나보다.
패기키지 명에 들어가는 값이 getContext().getPackageName() 인데
이 값을 출력해 보니 org.techtown.wanted_app_main 라고 나온다.