Android什么是setLevel()以及什么时候应该使用它?

时间:2014-07-18 00:56:58

标签: android

我正在尝试扩展drawable但失败。然而,在这种情况下,这不是问题,但它似乎与setLevel()方法有关。

我非常难以弄清楚这是做什么的,当我应该使用它时,从文档中说明:

  

指定drawable的级别。这允许drawable改变它   基于连续控制器的图像,例如显示进度   或音量水平。

     

如果您提供的新级别导致外观   可以改变,然后它负责调用   invalidateSelf()以便自己重绘,而true将是   从这个函数返回。

     

参数级别新级别,从0(最小)到10000(最大)。   返回如果级别中的此更改导致外观,则返回true   改变Drawable(因此要求无效),否则   返回false。

例如控制器是什么?何时以及如何使用?

1 个答案:

答案 0 :(得分:4)

Drawable's level基本上是整数。它对不同类型的Drawable子类有不同的含义。例如:

  • GradientDrawable中,它指定应绘制渐变的哪个部分。
  • RotateDrawable中,它指定旋转角度。
  • ScaleDrawable中,它会更改另一个Drawable的大小,因此ScaleDrawable就像是另一个Drawable的包装器,并根据当前级别进行裁剪。

例如,控制器可以是ProgressBar。这正是确定进度条的绘制方式。您可以查看this question了解详情