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

时间:2015-08-21 16:36:49

标签: android android-imageview layer layerdrawable

在我的应用程序中,我有一组drawbles。我必须逐层显示它。为此,我使用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个图像。

如何按图层

显示它

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

in this image it shows multiples layers

我做了一个jason张贴回答。图像逐层显示。但它的底部有一些奇怪的外观..看屏幕截图。如何使其正确enter image description here

1 个答案:

答案 0 :(得分:1)

我相信你想使用setLayerInset。

setLayerInset(layer,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);