0
일부 원격 이미지를로드하는 레이아웃이있는 앱이 있습니다. 원격 이미지가로드 될 때 100 높이의 시계가 표시됩니다 (이미지보기에서 onDraw를 덮어 썼습니다). 원격 이미지를 다운로드하고 표시 할 준비가되면 시계가 사라지고 이미지가 나타납니다.보기 무효화 문제
정상적으로 작동하지만 이미지가 올바르게 표시되지 않으면 시계의 높이 (100)가 유지됩니다.
이미지가 표시 될 때 이미지의보기와 이미지의 컨테이너 레이아웃을 새 높이 (365)로 새로 고치는 처리기를 호출하지만 제대로 작동하지 않기 때문에 그 이유를 알지 못합니다.
이
핸들러이다 핸들러가 호출되는
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if(((ImageView)view) != null && resource != null && resource.image != null){
((ImageView)view).setImageBitmap(resource.image);
view.getLayoutParams().height=height;
((ViewGroup)view.getParent()).getLayoutParams().height=height;
((ImageView)view).invalidate();
((ViewGroup)view.getParent()).invalidate();
((ViewGroup)view.getParent()).refreshDrawableState();
view.invalidate();
}
}
};
는 이미지가 표시되는 핸들러의 높이 값이 올바른지 (365)이지만, 이미지는 여전히 높이로 표시되는 시계 (100)의
나는 또한 화면을 차단하고 화면 차단을 해제하면 이미지가 올바른 높이 인 (365)으로 나타납니다. invalidate()에 문제가있는 것으로 보입니다.
감사
저는 이미지 요소마다로드 뷰 reinstanciate 해결해야 모든
보기의 높이를 설정 한 후 imageBitmap을 설정하는 방법은 어떻습니까? – PH7
감각이없고 작동하지 않는 PH7 – NullPointerException
귀하의 처리자가 귀하의 견해를 알지 못한다고 저는 믿습니다. 업데이트를 수행하기 전에 태그를보기로 설정 한 다음 핸들러에보기의 태그를 인쇄하십시오. –