setFile 和 onMeasure 的调用顺序?页面没法获得gif的宽高

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
irista23 2019-03-11 16:15:38

你可以在自定义GifView中添加来返回gif的宽高

public int getGifWidth() {        
    return mMovie.width();
}


  • 提问者 qq_没在道边上_0 #1
    我是想实现setFile后onMeasure可以直接设置宽高,现在setFile后onMeasure不执行了 onMeasure方法在什么时候执行
    2019-03-11 17:31:12
  • 提问者 qq_没在道边上_0 #2
    你的案例在setFile后会显示gif图吗 addView(gifView) 会调用GifView的生命周期 其中mMovie为null 在线程请求网络GIF图后,点用setFile(file) 虽然mMovie不为null 但GifView的生命周期的onMeasure和onDraw方法不会在执行 activity上显示不出来gif图
    2019-03-11 18:10:51
  • irista23 回复 提问者 qq_没在道边上_0 #3
    首先setFile()和onMeasure()调用时机不同,onMeasure()作用就是告诉父容器自己占用多大的位置,负责显示,至于显示什么是由setFile()决定的,如果后期对GifView大小改变会回调onMeasure()。图片显示不出来因为Android P(9.0)以上默认使用加密连接,需要证书认证,可以参考《Socket&Https通信》课程关于https的解决办法,或者你降低版本在网络上找个http链接的gif图也可以。
    2019-03-11 18:30:24
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Android数据通信开发与应用2018版
  • 参与学习           人
  • 提交作业       147    份
  • 解答问题       687    个

本专题介绍了Android开发核心组件:广播、服务及全局应用。教会你如何使用AIDL、Thread、Socket、蓝牙解决进程线程间通信问题。利用Glide等实现异步加载及NDK原生代码开发。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师