从Java设置图层列表的单个图层的大小

时间:2013-05-03 12:52:40

标签: android layer-list

我以这种方式在图层列表中显示2个图像。以下是drawable

中的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 do in xml,from 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完成的,我也持怀疑态度。 任何帮助将非常感谢

谢谢

1 个答案:

答案 0 :(得分:1)

是的,你可以用它来做 setLayerInset (int index, int l, int t, int r, int b)

See here

然后需要帮助然后问:)