Android-@drawable String에서 리소스 열기
나는 가지고있다:
String uri = "@ drawable / myresource.png";
ImageView에서 어떻게로드 할 수 있습니까? this.setImageDrawable?
정말 문자열로 작업해야하는 경우 다음과 같이 시도하십시오.
private void showImage() {
String uri = "drawable/icon";
// int imageResource = R.drawable.icon;
int imageResource = getResources().getIdentifier(uri, null, getPackageName());
ImageView imageView = (ImageView) findViewById(R.id.myImageView);
Drawable image = getResources().getDrawable(imageResource);
imageView.setImageDrawable(image);
}
그렇지 않으면 다음과 같은 R. * 참조로 작업하는 것이 좋습니다.
int imageResource = R.drawable.icon;
Drawable image = getResources().getDrawable(imageResource);
먼저 @drawable
Java 코드에서는 구문이 의미 가 없으므로 그렇게하지 마십시오 . 사용 int resourceId=R.drawable.myresource
.
어떤 이유로 리소스 이름이 필요하고 정수 ID가 필요한 getIdentifier()
경우 Resources
개체에 사용 하십시오 .
당신은 또한 당신 자신의 변수를 추가 할 수 있습니다. 제 경우에는 scene.name 사이에 @pfleidi 답변을 따랐습니다. c는 컨텍스트를 나타냅니다.
String uri = "drawable/" + scene.name;
int imageResource = c.getResources().getIdentifier(uri, null, c.getPackageName());
imageList.setImageResource(imageResource);
기한이 지났지 만 내가 가장 좋아하는 것은 Context를 사용하는 것입니다.
context.getApplicationContext().getResources().getDrawable(R.drawable.placeholder_image)
여기서 placeholder_image 는 리소스의 ID입니다. 귀하의 경우 R.drawable.myresource
.
컨텍스트는 활동 또는 애플리케이션이 될 수 있습니다. 당신이 어디에 있든 상관없이 컨텍스트에 대한 참조가 있으며,이를 사용하여 애플리케이션의 컨텍스트를 가져올 수 있습니다.
다른 사람이 내가 가진 문제를 발견하는 경우 JSON에서 이미지 이름을로드 한 다음 식별자를 가져와야했습니다. getIdentifier의 두 번째 매개 변수는 "drawable"로 설정할 수 있습니다. 이것은 @ alia-ramli-ramli 답변에 대한 약간의 변형입니다 ...
String uri = details.getString("circle").toLowerCase();
int imageResource = context.getResources().getIdentifier(uri, "drawable", context.getPackageName());
Drawable image = context.getResources().getDrawable(imageResource);
viewHolder.unit_circle.setImageDrawable(image);
int resID = mContext.getResources().getIdentifier(stringfilename, "drawable", mContext.getPackageName());
iv_imageview.setImageDrawable(ContextCompat.getDrawable(mContext,resID));
"drawable"을 getIdentifier () 메소드의 "mipmap"매개 변수로 대체하여 mipmap에서 이미지를 검색 할 수도 있습니다.
나는 같은 문제가 ... 더 이상 사용되지 않는 등. 최소 API 14로 그런 식으로 해결했습니다.
...
...
ImageView imgPoster = viewCache.getImgPoster(resource);
String uri = "drawable/" + film.getPoster();
int imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName());
Drawable image = ContextCompat.getDrawable(context, imageResource);
imgPoster.setImageDrawable(image);
return convertView;
...
...
참고 URL : https://stackoverflow.com/questions/2349652/android-open-resource-from-drawable-string
'programing tip' 카테고리의 다른 글
TRUNCATE와 DELETE FROM의 장단점 (0) | 2020.12.07 |
---|---|
laravel 5.5 비활성으로 인해 페이지가 만료되었습니다. (0) | 2020.12.06 |
Python-목록 단 조성을 확인하는 방법 (0) | 2020.12.06 |
Eclipse에서 여러 스레드 디버깅 (0) | 2020.12.06 |
fedora에서 mariadb의 기본 비밀번호는 무엇입니까? (0) | 2020.12.06 |