Android ImageButton 与 LayerDrawable 图像

发布于 2024-10-16 05:09:27 字数 545 浏览 3 评论 0原文

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

在 setLayerInset 尝试之后,我使用了 InsetDrawable,为 top 参数提供了自己的构造函数:

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

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

基本布局, 假设这是我的图像,

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

布局应该是,

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

I'm trying to display a LayerDrawable as an ImageButton image. All the layers must have different top values. such as top += 10;. For this I used setLayerInset with Drawable layer items but it stretched the images. I also tried with different parameters and it just displayed other stupid layouts.

After the setLayerInset attempt I used InsetDrawable, giving the top parameter its own constructor:

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

this time, the tops look OK, but ImageButton displays a very small area of it.

Basic layout,
let say this is my image,

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

the layout should be,

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

花开柳相依 2024-10-23 05:09:27

我设置了 android:scaleType="fitStart" 并更改了下面的行,它的工作就像一个魅力。

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

现在我有更多问题,

首先,正如您所看到的,我正在为每个层创建一个新实例。如果我只创建一个 Drawable 对象并将其设置为将用于创建 LayerDrawable 的数组的每一项,并使用 layerDrawable.setLayerInset > 函数设置顶部和底部属性,会不会更高效。

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

谢谢。

I set the android:scaleType="fitStart" and changed the line as below and it is working like a charm.

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

Now I have more questions,

First, as you can see I am creating a new instance for every layers. If I create only one Drawable object and set it to the every items of the array that will be used for creating the LayerDrawable and use layerDrawable.setLayerInset function to set the top and bottom properties, would it be more efficient.

And the other one if the LayerDrawable object has more items bigger than the imageButton it still displays the images. Is there a setting such as CSS overflow:hidden or something?

Thanks.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文