나는 ImageView
디스플레이에 s를 재사용 하고 있지만 어느 시점에 그것을 넣을 가치가 없습니다.
그렇다면 ImageView
안드로이드에서 를 지우는 방법은 무엇입니까?
난 노력 했어:
mPhotoView.invalidate();
mPhotoView.setImageBitmap(null);
그들 중 누구도보기를 지우지 않았으며 여전히 이전 이미지를 보여줍니다.
나는 ImageView
디스플레이에 s를 재사용 하고 있지만 어느 시점에 그것을 넣을 가치가 없습니다.
그렇다면 ImageView
안드로이드에서 를 지우는 방법은 무엇입니까?
난 노력 했어:
mPhotoView.invalidate();
mPhotoView.setImageBitmap(null);
그들 중 누구도보기를 지우지 않았으며 여전히 이전 이미지를 보여줍니다.
답변:
나는 dennis.sheppard 솔루션으로 그것을 사용했습니다 .
viewToUse.setImageResource(0);
그것은 작동하지만 문서화되어 있지 않으므로보기에 다른 영향을 미치는지 확실 하지 않습니다 (원하는 경우 ImageView 코드를 확인할 수 있습니다 ).
가장 좋은 해결책은 다음과 같습니다.
viewToUse.setImageResource(android.R.color.transparent);
나는이 해결책을 좋아하는데, 주를 되돌리기에 까다로운 것이 없으며 그것이 무엇을하고 있는지 분명합니다.
viewToUse.setImageResource(0);
효과는 없었지만 viewToUse.setImageResource(android.R.color.transparent);
효과는있었습니다.
비슷한 문제가있어서 기본적으로 화면에서 ImageView를 완전히 제거해야했습니다. 여기에있는 답변 중 일부는 나를 올바른 방향으로 인도했지만 궁극적으로 setImageDrawable ()을 호출하면 나에게 도움이되었습니다.
imgView.setImageDrawable(null);
(의견에서 언급했듯이 그러한 사용법은 공식 문서에 설명되어 있습니다 : ImageView # setImageDrawable .)
나는 이것이 오래되었다는 것을 알고 있지만
viewToUse.setImageResource(0);
그것이 작동하는 것처럼 보이지는 않지만 변덕에 그것을 시도하고 완벽하게 작동했습니다.
다른 이미지를 표시하지 않을 때 ImageView를 설정하는 기본 이미지 인 것처럼 들립니다. 연락처 애플리케이션이 수행하는 방식은 다음과 같습니다.
if (photoId == 0) {
viewToUse.setImageResource(R.drawable.ic_contact_list_picture);
} else {
// ... here is where they set an actual image ...
}
이봐, 나는 내가이 답변에 매우 늦었다는 것을 알고 있지만, 나는 이것을 이것을 공유해야한다고 생각했다.
이미지를 재설정 할 때 호출하는 방법은 u를 설정하는 동안 호출 한 방법과 같아야합니다.
이미지 소스 를 재설정하려는 경우 @ dennis.sheepard 응답은 원래 비트 맵에서 이미지를 설정하는 경우에만 제대로 작동합니다.setImageResource()
예를 들어
나는 사용 setImageBitmap()
했기 때문에 설정이 setImageResource(0)
작동하지 않고 대신 사용했습니다 setImageBitmap(null)
.
drawable (blank_white_shape.xml과 같은 것) 을 정의하여 이것을 달성 할 수있었습니다 .
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/white"/>
</shape>
그런 다음 이미지보기를 지우고 싶을 때 전화하십시오.
imageView.setImage(R.drawable.blank_white_shape);
이것은 나를 위해 아름답게 작동합니다!
같은 문제에 직면했습니다.보기의 배경색을 레이아웃 배경색으로 변경하면 다음과 같이 할 수 있습니다.
edit_countflag.setBackgroundColor(Color.parseColor("#ffffff"));
// 이미지를 설정
edit_countflag.setImageResource(R.drawable.flag_id);
를 사용하여 ImageView의 이미지도 제거하려고 시도했지만 ImageView.setImageRessource(0)
작동하지 않았습니다.
운 좋게 나는이 메시지를 로그에 넣었다.
Caused by: java.lang.IllegalStateException: The specified child already has a parent.
You must call removeView() on the child's parent first.
따라서 layoutmanager
레이아웃의 인스턴스는 필요한 것보다 다음과 같습니다.
RelativeLayout layoutManager = new RelativeLayout(this);
ImageView image = new ImageView(this);
// this line worked for me
layoutManager.removeView(image);