0

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

我如何逐层显示它

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

在这张图片中,它显示了多个图层

我已经在答案中发布了一个杰森。图像逐层显示。但它的底部有一些奇怪的外观.. 见屏幕截图。以及如何使它正确 在此处输入图像描述

4

1 回答 1

1

我相信你想使用 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);
于 2015-08-21T16:56:35.773 回答