ImageView 소스 변경
나는 있습니다.ImageView
다음 구문을 사용하여 xml에 소스 이미지를 설정합니다.
<ImageView
android:id="@+id/articleImg"
style="@style/articleImgSmall_2"
android:src="@drawable/default_m" />
이제 이 이미지를 프로그래밍 방식으로 변경해야 합니다.하지만 제가 해야 할 일은 이전 이미지를 삭제하고 새로운 이미지를 추가하는 것입니다.제가 한 일은 다음과 같습니다.
myImgView.setBackgroundResource(R.drawable.monkey);
작동하지만 안드로이드가 이전 이미지 위에 새로운 이미지를 쌓아 올리는 것을 발견했습니다(어떻게 그것이 토론과 관련이 없다는 것을 알게 되었는지 묻지 마십시오:).새 이미지를 설정하기 전에 이전 이미지를 삭제해야 합니다.
어떻게 하면 그것을 달성할 수 있을까요?
ImageView 소스 변경 중:
사용 방법:
myImgView.setBackgroundResource(R.drawable.monkey);
당신은 그 원숭이를 배경으로 하고 있습니다.
방법을 사용할 것을 제안합니다.
myImgView.setImageResource(R.drawable.monkey);
또는 방법:
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
:setImageResource()
(표준방식, 종횡비 유지)
View
:setBackgroundResource()
(이미지가 늘어짐)
둘다요.
제 완전한 대답은 여기 있습니다.
아니면 이것을 시도해봐요.저는 잘 작동하고 있습니다.
imageView.setImageDrawable(ContextCompat.getDrawable(this, image));
imageview에서 mipmap dirs 내부에 있는 이미지를 설정하려면 다음과 같이 할 수 있습니다.
myImageView.setImageDrawable(getResources().getDrawable(R.mipmap.my_picture)
이미지 보기를 변경하는 방법을 작성하기만 하면 됩니다.
public void setImage(final Context mContext, final ImageView imageView, int picture)
{
if (mContext != null && imageView != null)
{
try
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
{
imageView.setImageDrawable(mContext.getResources().getDrawable(picture, mContext.getApplicationContext().getTheme()));
} else
{
imageView.setImageDrawable(mContext.getResources().getDrawable(picture));
}
} catch (Exception e)
{
e.printStackTrace();
}
}
}
언급URL : https://stackoverflow.com/questions/2974862/changing-imageview-source
'programing' 카테고리의 다른 글
XMLHttpRequest:네트워크 오류 0x80070005, Microsoft Edge에서 액세스가 거부됨(IE는 아님) (0) | 2023.08.11 |
---|---|
Swift의 UITableView에 새 셀을 삽입하는 방법 (0) | 2023.08.11 |
python을 사용하여 데이터베이스에서 최신 데이터 반복 선택 (0) | 2023.08.11 |
jQuery를 사용하여 CKEditor의 iframe에서 내용 가져오기 (0) | 2023.08.06 |
JavaScript 파일을 동적으로 로드합니다. (0) | 2023.08.06 |