如何在android中使用findDrawableByLayerId?
我想对图层列表中的特定项使用setBounds(),该项用作按钮的背景。但是我无法让LayerDrawable对象调用findDrawableByLayerId()如何在android中使用findDrawableByLayerId?,android,drawable,layer-list,Android,Drawable,Layer List,我想对图层列表中的特定项使用setBounds(),该项用作按钮的背景。但是我无法让LayerDrawable对象调用findDrawableByLayerId() 有人能帮我解决这个问题吗?使用此方法在新的layerdrawable上创建:)我无法使用findDrawableByLayerId() 使用此方法在新的layerdrawable:)上创建。我无法使用findDrawableByLayerId() 如果你想使用finddrawablebayerId(int-id),你应该先做setI
有人能帮我解决这个问题吗?使用此方法在新的layerdrawable上创建:)我无法使用findDrawableByLayerId()
使用此方法在新的layerdrawable:)上创建。我无法使用findDrawableByLayerId()
如果你想使用
finddrawablebayerId(int-id)
,你应该先做setId(int-index,int-id)
,如果不是,id总是-1。如果你想使用finddrawablebayerId(int-id)
,你应该先做setId(int-index,int-id)
,如果不是,id总是-1
@Override
public void setBackgroundDrawable(Drawable background) {
Log.d("button","setting new background ");
Drawable[] layers = new Drawable[5];
Resources resources = getResources();
layers[0] = resources.getDrawable(R.drawable.outer_rectangle);
layers[1] = resources.getDrawable(R.drawable.inner_rectangle);
layers[2] = resources.getDrawable(R.drawable.upper_ovel);
layers[3] = resources.getDrawable(R.drawable.gradient_fill);
layers[4] = resources.getDrawable(R.drawable.lower_ovel);
LayerDrawable layerDrawable = new LayerDrawable(layers);
layerDrawable.setLayerInset(0, 0, 0, 0, 0);
layerDrawable.setLayerInset(1, 3, 3, 3, 0);
layerDrawable.setLayerInset(2, 3, 15, 3, 25);
layerDrawable.setLayerInset(3, 3, 23, 3, 0);
layerDrawable.setLayerInset(4, 4, 60, 4, -5);
super.setBackgroundDrawable(layerDrawable);
}