programing

ImageView 소스 변경

powerit 2023. 8. 11. 22:37
반응형

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()(표준방식, 종횡비 유지)

enter image description here

View:setBackgroundResource()(이미지가 늘어짐)

enter image description here

둘다요.

enter image description here

제 완전한 대답은 여기 있습니다.

아니면 이것을 시도해봐요.저는 잘 작동하고 있습니다.

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

반응형