나는이 ImageView
다음 구문을 사용하여 XML의 소스 이미지 세트를 :
<ImageView
android:id="@+id/articleImg"
style="@style/articleImgSmall_2"
android:src="@drawable/default_m" />
이제 프로그래밍 방식으로이 이미지를 변경해야합니다. 내가해야 할 일은 이전 이미지를 삭제하고 새 이미지를 추가하는 것입니다. 내가 한 일은 이것입니다.
myImgView.setBackgroundResource(R.drawable.monkey);
그것은 작동하지만 안드로이드가 오래된 이미지 위에 새로운 이미지를 쌓는 것을 알았습니다 (토론과 관련이 없다는 것을 어떻게 알지 말아주세요). 새 이미지를 설정하기 전에 이전 이미지를 제거해야합니다.
어떻게하면 되나요?
답변
ImageView 소스 변경 :
setBackgroundResource()
방법을 사용하여 :
myImgView.setBackgroundResource(R.drawable.monkey);
당신은 그 원숭이를 배경에 넣고 있습니다.
setImageResource()
방법을 사용하는 것이 좋습니다 .
myImgView.setImageResource(R.drawable.monkey);
또는 setImageDrawable()
방법 :
myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey));
*** 새로운 Android API 22 getResources().getDrawable()
에서는 더 이상 사용되지 않습니다. 다음은 지금 사용하는 예입니다.
myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey, getApplicationContext().getTheme()));
이전 API 버전의 유효성을 검사하는 방법 :
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey, getApplicationContext().getTheme()));
} else {
myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey));
}
답변
setImageResource
대신 사용해야 합니다 setBackgroundResource
.
답변
myImgView.setImageResource(R.drawable.monkey);
현재 이미지보기에서 이미지를 설정하는 데 사용되지만이 이미지를 삭제하려면 다음과 같이이 코드를 사용할 수 있습니다.
((ImageView) v.findViewById(R.id.ImageView1)).setImageResource(0);
이제 리소스 값이 0으로 설정되었으므로 이미지보기에서 이미지가 삭제됩니다.
답변
ImageView의 ID를
ImageView imgFp = (ImageView) findViewById(R.id.imgFp);
그런 다음 사용
imgFp.setImageResource(R.drawable.fpscan);
XML 대신 프로그래밍 방식으로 소스 이미지를 설정합니다.
답변
아니면 이것을 시도하십시오. 나를 위해 그것은 잘 작동합니다 :
imageView.setImageDrawable(ContextCompat.getDrawable(this, image));
답변
보충적인 시각적 답변
ImageView
: setImageResource()
(표준 방법, 종횡비 유지)
View
: setBackgroundResource()
(이미지가 늘어납니다)
양자 모두
내 완전한 답변은 여기에 있습니다 .
답변
밉맵 디렉토리 안에있는 이미지를 imageview에서 설정하려면 다음 과 같이하십시오.
myImageView.setImageDrawable(getResources().getDrawable(R.mipmap.my_picture)