具有LayerDrawable图像的Android ImageButton

时间:2011-02-06 00:30:00

标签: android imagebutton

我正在尝试将LayerDrawable显示为ImageButton图像。所有图层必须具有不同的顶部值。例如top += 10;。为此,我使用了setLayerInset与Drawable图层项目,但它拉伸了图像。我也尝试了不同的参数,它只显示了其他愚蠢的布局。

在setLayerInset尝试之后我使用了InsetDrawable,给top参数赋予了自己的构造函数:

new InsetDrawable(resources.getDrawable(R.drawable.soldier), 0, layerTop, 0, 0);

这一次,顶部看起来还不错,但ImageButton显示的区域非常小。

基本布局, 让我们说这是我的形象,

*---*
|   |
|   |
 ---

布局应该是,

*---*
|   |
*---*
|   |
*---*
|   |
*---*
|   |
|   |
 ---

1 个答案:

答案 0 :(得分:0)

我设置android:scaleType="fitStart"并更改了如下所示的行,它就像魅力一样。

new InsetDrawable(resources.getDrawable(R.drawable.soldier), 0, layerTop,0,-layerTop);

现在我有更多问题,

首先,您可以看到我正在为每个图层创建一个新实例。如果我只创建一个Drawable对象并将其设置为将用于创建LayerDrawable并使用layerDrawable.setLayerInset函数来设置顶部和底部属性的数组的每个项目,它更有效率。

另一个如果LayerDrawable对象有更多的项目比imageButton更大,它仍然显示图像。是否有CSS overflow:hidden之类的设置?

感谢。