在我的应用程序中,我有一组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个图像。
如何按图层
显示它更新 我需要一个像这样的视图,第一个和最后一个图像在图层中对齐。
我做了一个jason张贴回答。图像逐层显示。但它的底部有一些奇怪的外观..看屏幕截图。如何使其正确
答案 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);