drawable
폴더 의 이미지 이름이 같은 데이터베이스에서 문자열을 동적으로 생성하고 있습니다.
이제 동적으로 ImageView
사용 하기 위해 해당 값을 설정하고 싶습니다 setImageDrawable(R.id.StringGenerated)
.
어떤 제안 ..
답변
이 시도,
int id = getResources().getIdentifier("yourpackagename:drawable/" + StringGenerated, null, null);
이렇게하면 액세스하려는 드로어 블의 ID가 반환됩니다. 그러면 다음을 수행하여 이미지 뷰에서 이미지를 설정할 수 있습니다.
imageview.setImageResource(id);
답변
Drawable image = ImageOperations(context,ed.toString(),"image.jpg");
ImageView imgView = new ImageView(context);
imgView = (ImageView)findViewById(R.id.image1);
imgView.setImageDrawable(image);
또는
setImageDrawable(getResources().getDrawable(R.drawable.icon));
답변
개인적으로 setImageResource()
이런 방법을 선호합니다 .
ImageView myImageView = (ImageView)findViewById(R.id.myImage);
myImageView.setImageResource(R.drawable.icon);
답변
리소스 드로어 블 이름은 문자열로 저장되지 않으므로 빌드 중에 생성 된 정수 상수로 문자열을 해석해야합니다. Resources
클래스를 사용하여 문자열을 해당 정수로 해석 할 수 있습니다 .
Resources res = getResources();
int resourceId = res.getIdentifier(
generatedString, "drawable", getPackageName() );
imageView.setImageResource( resourceId );
이렇게하면 생성 된 문자열 ImageView
이 올바른 이미지를로드하는 데 사용할 수 있는 정수로 해석 됩니다.
또는 ID를 사용하여 Drawable
수동으로 로드 한 다음 리소스 ID 대신 해당 드로어 블을 사용하여 이미지를 설정할 수 있습니다.
Drawable drawable = res.getDrawable( resourceId );
imageView.setImageDrawable( drawable );
답변
이 대답은 간단합니다.
Drawable myDrawable = getResources().getDrawable(R.drawable.pic);
imageview.setImageDrawable(myDrawable);
답변
이것은 적어도 Android API 15에서 작동합니다.
ImageView = imgv;
Resources res = getResources(); // need this to fetch the drawable
Drawable draw = res.getDrawable( R.drawable.image_name_in_drawable );
imgv.setImageDrawable(draw);
setImageResource ()를 사용할 수 있지만 설명서에는 “UI 스레드에서 비트 맵 읽기 및 디코딩을 수행하므로 지연 시간 문제가 발생할 수 있습니다. setImageDrawable () 또는 setImageBitmap () 사용을 고려하십시오.”라고 명시 되어 있습니다. chetto가 말한대로
답변
게시 된 모든 답변은 오늘 적용되지 않습니다. 예를 들어, getDrawable ()은 더 이상 사용되지 않습니다. 여기에 업데이트 된 답변이 있습니다. 건배!
ContextCompat.getDrawable(mContext, drawable)
문서화 된 방법에서
public static final android.graphics.drawable.Drawable getDrawable (@NotNull android.content.Context context,
@ android.support.annotation.DrawableRes int id