1
我可以通過編程方式更改矢量繪製的顏色,但我想將描邊應用於矢量繪製。我需要在運行時改變矢量繪製中風的方法:將邊框/描邊設置爲矢量繪製可編程
以前我用這個方法,但在我的情況下失敗。
我將Vector drawable轉換爲位圖,然後將邊框與此函數一起使用,但它用黑色填充所有,則不應用筆觸。
private static Bitmap getBitmap(VectorDrawable vectorDrawable)
{
Bitmap bitmap = Bitmap.createBitmap(vectorDrawable.getIntrinsicWidth(),
vectorDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
vectorDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
vectorDrawable.draw(canvas);
return bitmap;
}
private static Bitmap getBitmap(Context context, int drawableId)
{
Drawable drawable = ContextCompat.getDrawable(context, drawableId);
if (drawable instanceof BitmapDrawable)
{
return ((BitmapDrawable) drawable).getBitmap();
}
else if (drawable instanceof VectorDrawable)
{
return getBitmap((VectorDrawable) drawable);
}
else
{
throw new IllegalArgumentException("unsupported drawable type");
}
}
private Bitmap addWhiteBorder(Bitmap bmp, int borderSize)
{
Bitmap bmpWithBorder = Bitmap.createBitmap(bmp.getWidth() + borderSize*2 , bmp.getHeight() + borderSize*2 , bmp.getConfig());
Canvas canvas = new Canvas(bmpWithBorder);
canvas.drawColor(Color.BLACK);
canvas.drawBitmap(bmp, borderSize, borderSize, null);
return bmpWithBorder;
}
我認爲這將繪製一個矩形邊框周圍的位圖,而我想添加筆畫/邊界到矢量繪製路徑(或從它創建的位圖)@Doris – waqas
我添加了有問題的圖片請參閱@Doris – waqas
是的,上面的答案會產生一個矩形邊框。在看到您添加的圖像後,我認爲VectorDrawable可以用一條路徑表示,在這種情況下,您需要定義strokeWidth和strokeColor以實現該黑色輪廓/邊框。 –