Scale Drawable - setImageLevel 是不是规定了比例?
Posted
技术标签:
【中文标题】Scale Drawable - setImageLevel 是不是规定了比例?【英文标题】:Scale Drawable - does setImageLevel dictate the scale?Scale Drawable - setImageLevel 是否规定了比例? 【发布时间】:2012-04-10 01:41:54 【问题描述】:我创建了一个小型测试应用程序来尝试缩放绘图。
我在 xml 中定义我的可绘制对象并将其保存为 scale_up.xml
。我有一个带有ImageView
的main.xml
布局文件。我在 ImageView 中使用 android:src="@drawable/scale_up"
来使用我在 xml 中创建的可绘制对象。在我的活动中,我使用myImageView.setImageLevel(some level here)
来设置main.xml
中定义的ImageView 的级别。一切顺利,ImageView 显示在 scale_up 中定义的可绘制对象。
我的困惑如下:
如果级别设置为 10000,更改scale_up.xml
中的 scaleHeight
和 scaleWidth
% 不会产生明显的差异
更改setImageLevel
中的级别(介于 0 和 10000 之间)会更改图像的大小 - 实际上只能在 5000 左右感知。scaleHeight 和 scaleWidth 的 % 值越高,图像越小(取决于setImageLevel()
)
我想我的问题是:
-
是否正确使用
setImageLevel()
,在活动中传递一个介于 0 和 10000 之间的级别来控制 xml 文件中定义的可绘制对象的大小?
scaleHeight、scaleWidth 和setImageLevel()
之间的关系是什么 - 正如我现在所看到的,我不妨将 scaleHeight 和 scaleWidth 设置为 100%,然后使用 setImageLevel(5000)
来获得 50% 的缩放图像 - 即增加或减少 setImageLevel(0 to 10000)
将改变比例 - 使 scaleHeight
和 scaleWidth
% 变得毫无意义。
感谢对此的任何澄清,也许还有一个如何正确使用缩放可绘制对象(在 xml 中定义)的示例。
【问题讨论】:
【参考方案1】:没有。 setImageLevel 更像是图像的枚举类型。它用于显示不同的图像,例如电池充电水平或信号条显示。您将一张图片置于 1 级以下表示电池电量不足,将另一张图片置于 2 级以下表示电池电量不足,依此类推。然后你使用 setImageLevel 在它们之间切换。至少这是我的理解。也就是说,我不知道为什么它会改变比例。
我不知道为什么会这样。这可能是 Eclipse 中 ADT 中的 xml 编辑器/查看器的问题,我注意到很多东西在我的手机上显示得很好,但在我的编辑器上却非常糟糕。出于这个原因,我通常只在 xml 中工作。
您到底想完成什么?这样可能更容易回答您的问题。
【讨论】:
以上是关于Scale Drawable - setImageLevel 是不是规定了比例?的主要内容,如果未能解决你的问题,请参考以下文章
setImage:forState 不适用于 UIButton 的子类