Android 使视图无效的问题

Android 使视图无效的问题,android,layout,view,imageview,invalidation,Android,Layout,View,Imageview,Invalidation,我有一个应用程序,它的布局可以加载一些远程图像。加载远程图像时,将显示一个强制高度为100的时钟(我在imageview中覆盖了onDraw),当下载远程图像并准备显示时,时钟消失,然后图像出现 它可以工作,但是当图像显示时没有收到正确的高度,它仍然具有时钟的高度(100) 我不知道为什么,因为当显示图像时,它会调用一个处理程序,用新的高度(365)刷新图像的视图和图像的容器布局,但它不能正常工作 这是处理程序: Handler handler = new Handler(){

我有一个应用程序,它的布局可以加载一些远程图像。加载远程图像时,将显示一个强制高度为100的时钟(我在imageview中覆盖了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()有问题

谢谢,所有问题都解决了

每次加载图像元素时,必须重新关联视图:


视图=新的FocusableImageView(活动)

设置视图高度后再设置imageBitmap如何?PH7没有意义,也不起作用我相信处理程序不知道您的视图是什么。为视图设置一个标记(在执行任何更新之前),然后在处理程序上打印视图的标记。它知道它,因为如果我阻止屏幕并取消阻止屏幕,图像将以正确的高度显示(365)。