Задайте размер за отделен слой от списък със слоеве от Java

По този начин показвам 2 изображения в списък със слоеве. Следва layered_map.xml в чертеж

    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
           <item android:drawable="@drawable/bgimage" />
           <item android:id="@+id/marker"
                 android:drawable="@drawable/point"
                 android:left="660sp"
                 android:right="210sp"
                 android:top="375sp"
                 android:bottom="1125sp"
           />
    </layer-list>

Всичко е наред. Получавам голямо фоново изображение и малко наслоено изображение върху него. Освен че сега бих искал да направя това, което android:left, android:right, android:top, android:bottom правят в xml, от Java Това е, което опитах

      LayerDrawable layerDrawable = (LayerDrawable)getResources().getDrawable(R.drawable.layered_map);
      Drawable d = layerDrawable.findDrawableByLayerId(R.id.marker);
    d.setBounds(400, 300, 420, 320);
    //d.invalidateSelf();
    mImageView.setImageDrawable(layerDrawable);

Но това не работи. Също така прочетох някъде, че не е възможно да се задават различни граници за различните слоеве. Също така съм скептичен дали това, което xml прави в това, се прави точно от setBounds. Всяка помощ ще бъде наистина оценена

Благодаря ти


person RaWa    schedule 03.05.2013    source източник


Отговори (1)


да, можете да го направите с setLayerInset (int index, int l, int t, int r, int b)

Вижте тук

и имаш нужда от помощ тогава питай :)

person Mit Bhatt    schedule 03.05.2013
comment
Благодаря mit B. Първо за бързия отговор и за правилния отговор. Работи. - person RaWa; 03.05.2013