在 ImageView 中逐层显示图像不起作用

Display images layer by layer in ImageView not works

在我的应用程序中,我有一组绘图。我必须逐层显示它。为此,我正在使用 LayerDrawble。我是这样用的

ImageView

     image = (ImageView)findViewById(R.id.image);                

        Resources r = getResources();
        Drawable[] capas = new Drawable[3];

        capas[0] = r.getDrawable(R.drawable.icon);
        capas[1] = r.getDrawable(R.drawable.icon2);
        capas[2] = r.getDrawable(R.drawable.icon3);           

        LayerDrawable capasDrawable = new LayerDrawable(capas);
        image.setImageDrawable(capasDrawable);

但它只显示最上面的图像。这意味着它不会逐层显示整个 3 个图像。

如何逐层显示

更新 我需要这样的视图,第一个和最后一个图像在图层中对齐。

我已经完成了 jason 的回答。图像逐层显示。但它的底部看起来有些奇怪。请看屏幕截图。我该如何让它正确

我相信你想使用 setLayerInset。

setLayerInset(图层, leftOffset, topOffset, rightOffset, bottomOffset)

我不确定定位,你必须调整一下。

    ImageView image = (ImageView)findViewById(R.id.image);                

    Resources r = getResources();
    Drawable[] capas = new Drawable[3];

    capas[0] = r.getDrawable(R.drawable.icon);
    capas[1] = r.getDrawable(R.drawable.icon2);
    capas[2] = r.getDrawable(R.drawable.icon3);           

    LayerDrawable capasDrawable = new LayerDrawable(capas);

    // Set bottom layer inset
    capasDrawable.setLayerInset(0, 5, 0, 0, 5);

    // Set middle layer inset
    capasDrawable.setLayerInset(1, 10, 0, 0, 10);

    // Set top layer inset
    capasDrawable.setLayerInset(2, 15, 0, 0, 15);

    image.setImageDrawable(capasDrawable);