안드로이드 스튜디오 이미지뷰 이미지 바꾸기
조회수 953회
setImageResource() 함수를 이용하면
logoImageViews[i].setImageResource(R.drawable.premierleague);
그런데 제가 원하는 거는 태그가 아니라 파일 명('xx.png')를 입력해서 바꾸는 건데 가능한가요?
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
파일명으로 접근하시려면 조금 복잡할 수도 있지만 setImageUri()를 이용하는 방법이 있습니다.
형태는 "android:resource//패키지/drawable/파일 이름"으로 하시면 되는데요, 만약 패키지가 "com.example.package"이고 불러오실 파일 이름이 "premierleague.png"라고 하신다면 "android:resource//com.example.package/drawable/premierleague.png" 이렇게 쓰시면 됩니다.
그런 다음 ImageView 클래스의 setImageUri() 메서드를 이용해서 만든 Uri 객체를 넘겨주시면 됩니다.
Uri pathToImage = Uri.parse("android:resource//com.example.package/drawable/premierleague.png"); // setImageUri()에 만든 Uri.parse()를 통해서 만든 Uri 객체를 넘겨주시면 됩니다. logoImageViews[i].setImageUri(pathToImage);
이 방법 말고도 방법이 하나 더 있는데, 비용이 조금 비싸서 RecyclerView 같은 곳에서 사용하면 렉을 경험하실 수도 있습니다.
Activity에서 getResources().getIdentifier()를 이용하는 방법인데요, 호출할 때 파일 이름, 리소스 타입, 패키지를 넘겨주시면 됩니다.
int imageResourceId = getResources().getIdentifier("premierleague.png", "drawable", getPacakageName()); // getPacakageName()으로 패키지 이름을 얻을 수도 있고, 아니면 직접 쓰셔도 상관 없습니다. logoImageViews[i].setImageResource(imageResourceId);
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력