在Android中的View設置背景時,使用ShapeDrawable有可能出現沒法上色的問題(最終背景爲黑色),例如,使用以下的代碼爲控件設置顏色時,控件背景將會變成黑色canvas
ShapeDrawable drawable=new ShapeDrawable(); Canvas canvas1 = new Canvas(); Paint paint=new Paint(); paint.setColor(Color.rgb(0x20, 0xAC, 0xFF)); Shape shape=new OvalShape(); shape.draw(canvas1, paint); drawable.setShape(shape);
正確的作法能夠參考以下代碼:spa
ShapeDrawable drawable=new ShapeDrawable(new OvalShape()); drawable.setIntrinsicHeight(25); drawable.setIntrinsicWidth(25); drawable.getPaint().setColor(Color.rgb(0x20, 0xAC, 0xFF));
問題的緣由多是設置完shape並繪製shape後,drawable又從新繪製了圖形,而drawable中的paint並無設置顏色,致使出現沒法上色的問題。code