首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于android Drawable getBounds返回Rect(0,0 - 0,0)

关于Android Drawable getBounds()返回Rect(0,0 - 0,0)的问题,这个问题通常出现在使用Drawable对象时,尤其是在自定义View中。Drawable getBounds()方法返回Drawable的显示边界,如果返回的是Rect(0,0 - 0,0),则表示Drawable的边界没有被设置或者没有被正确设置。

以下是一些可能的原因和解决方案:

  1. 原因:Drawable对象没有被正确设置边界。

解决方案:在使用Drawable对象之前,可以使用setBounds()方法设置其边界。例如:

代码语言:txt
复制

Drawable drawable = getResources().getDrawable(R.drawable.my_drawable);

drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());

代码语言:txt
复制
  1. 原因:Drawable对象的边界被错误地设置为0。

解决方案:确保在设置边界时使用正确的值。例如:

代码语言:txt
复制

Drawable drawable = getResources().getDrawable(R.drawable.my_drawable);

drawable.setBounds(10, 10, 100, 100);

代码语言:txt
复制
  1. 原因:Drawable对象的边界被错误地设置为负数。

解决方案:确保在设置边界时使用正确的值。例如:

代码语言:txt
复制

Drawable drawable = getResources().getDrawable(R.drawable.my_drawable);

drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());

代码语言:txt
复制
  1. 原因:Drawable对象的边界被错误地设置为NaN。

解决方案:确保在设置边界时使用正确的值。例如:

代码语言:txt
复制

Drawable drawable = getResources().getDrawable(R.drawable.my_drawable);

drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());

代码语言:txt
复制

总之,要解决Drawable getBounds()返回Rect(0,0 - 0,0)的问题,需要确保在使用Drawable对象之前正确设置其边界。如果仍然遇到问题,请检查代码中是否存在其他错误。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 音视频开发之旅(63) -Lottie 源码分析之动画与绘制

    第二个 Rect(dst) 是图片在Canvas画布中显示的区域,即要将bitmap 绘制在屏幕的什么地方 // 通过动态的改变dst,可以实现 移动、缩放等效果,以及根据屏幕的像素密度进行缩放,...public void getBounds( RectF outBounds, Matrix parentMatrix, boolean applyParents) { rect.set...Lottie的动画和渲染解析部分就到这里,关于BaseKeyframeAnimation主要实现Layer和DrawingContent中动画的插值计算,没有详细分析,有需要再看吧。...Lottie存在mask、matters 时,需要先saveLayer,再调用drawLayer返回。...六、资料 Lottie实现思路和源码分析 Lottie 动画原理剖析 揭秘Lottie动画的优劣及原理 lottie-android 框架使用及源码解析 Lottie动画库 Android 端源码浅析

    87220
    领券