2015-08-21 55 views
0

在我的應用程序中,我有一組drawable。我必須逐層顯示它。爲此,我正在使用LayerDrawble。我以這種方式使用它在ImageView中逐層顯示圖像不起作用

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張圖像。

如何顯示它由一層

更新 作爲layet我需要這樣的觀點,第一個和最後一個圖像圖層對齊。

in this image it shows multiples layers

我已經做了AA傑森張貼在答案。圖像逐層顯示。但它的底部有一些奇怪的外觀..看到屏幕截圖。我如何使它正確enter image description here

+0

LayerDrawable是一個Drawable數組。當你調用setImageDrawalbe時,它只會顯示最後一個(最大索引)。你究竟想要完成什麼? – jasonwarford

+0

請重新加載問題。我上傳了演示圖片,我需要像圖片中的視圖。 – droidev

回答

1

我相信你想使用setLayerInset。

setLayerInset(層,左偏移,topOffset,右偏移,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);