【发布时间】:2017-03-03 06:01:33
【问题描述】:
这张专辑解释了我想要做什么,以及当矢量没有调整大小时我遇到的问题:http://imgur.com/a/HM3K2
这是我尝试缩放矢量的方法,但它似乎不起作用:
private Bitmap drawCirclePreview(int color, Shape square) {
//An object from my 'VectorOverlay' class which resolves the resource...
VectorOverlay circleOverlay = new VectorOverlay(color);
//...and returns a drawable
Drawable drawable = circleOverlay.drawCircleOverlay(this);
Bitmap bitmap;
//Make bitmap with same dimensions as the square (redundant, I know)
bitmap = Bitmap.createBitmap(square.getWidth(), square.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);
return bitmap;
}
正在使用的 VectorOverlay 方法内部:
public Drawable drawCircleOverlay(Context context){
Drawable drawable = ContextCompat.getDrawable(context, R.drawable.circle_overlay);
drawable = DrawableCompat.wrap(drawable);
DrawableCompat.setTint(drawable, color);
return drawable;
然后我为新的 LayerDrawable 创建图层:
private void drawSquarePreview(){
Drawable[] layers = new Drawable[2];
//[...] omitting code for when the square object is created and drawn
layers[0] = new BitmapDrawable(squareBmp);
layers[1] = new BitmapDrawable(drawCirclePreview(Color.parseColor("#4af9d8"), square));
LayerDrawable layerDrawable = new LayerDrawable(layers);
ivPreview.setImageDrawable(layerDrawable);
}
然而,结果仍然如图所示。我难住了。我一直在寻找答案很长时间,但我仍然找不到解决方案。任何帮助将不胜感激。
附加信息:我正在使用支持库来处理旧 API 上的矢量可绘制对象。
【问题讨论】:
标签: android vector resize drawable android-vectordrawable