我正在尝试为每个图层创建具有两种不同分辨率的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});
我只是在我的代码中执行此操作。...在这里,我更改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);