如何调整LayerDrawable的特定层的大小

问题描述 投票:0回答:1

我正在尝试为每个图层创建具有两种不同分辨率的LayerDrawable。底层是圆形的纯色,顶层是来自drawable的XML向量。我正在使用以下代码,但无法设置每个图层的分辨率。

注意:顶层应在水平和垂直方向上都在中间对齐。

        Drawable front = ContextCompat.getDrawable(this, R.drawable.ic_hello);
        GradientDrawable back = new GradientDrawable();
        back.setShape(GradientDrawable.RING);
        back.setColor(Color.RED);
        front.setBounds(0,0,50,50); // trying to set 50x50
        back.setBounds(0,0,100,100); // trying to set 100x100
        LayerDrawable layerDrawable = new LayerDrawable(new Drawable[]{front,back});
android drawable android-drawable
1个回答
0
投票

我只是在我的代码中执行此操作。...在这里,我更改layer[0]的大小。有用。只需更改layerDrawable.setLayerInsert(layer index,left,top,right,bottom)中的值即可:

 Resources r = getResources();
        Drawable[] layers = new Drawable[2];

        layers[0] = r.getDrawable(R.drawable.gi);
        layers[1] = r.getDrawable(R.drawable.url);
        LayerDrawable layerDrawable = new LayerDrawable(layers);
                  // left top right bottom
        layerDrawable.setLayerInset(0, 600, 600, 600, 600);

        iv1.setImageDrawable(layerDrawable);
© www.soinside.com 2019 - 2024. All rights reserved.