我有一张带有width 400
和height 100
的画布,我只是画了一些东西
现在我想绘制一个Drawable
我是这样画的@Override
protected void onDraw(Canvas canvas) {
iconDrawable.draw(canvas);
// ... draw other thing
}
现在结果是
我想要它只能制作Drawable Rounded
我看到了一些像RoundedImageView
这样的类,但我没有找到好主意将我的Drawable转换为圆形并在画布上绘制而不是全部画布上的小部分
最终结果必须像
在重复之前请仔细阅读问题我希望在所有画布上不要在所有画布上绘制部分的圆形画面,因为我提到我读了一些类似RoundedImageView的类代码......
答案 0 :(得分:0)
您可以使用RoundedBitmapDrawable
的{{1}}。
android.support.v4
如果你需要缩放drawable(设置它的大小),你应该使用
Bitmap bm = ...;
RoundedBitmapDrawable drawable = RoundedBitmapDrawableFactory.create(getResources(), bm);
drawable.setCornerRadius(Math.min(bm.getWidth(), bm.getHeight()));
drawable.setAntiAlias(true);
....
drawable.draw(canvas);
如果你需要在(x,y)绘制一个drawable,你应该翻译画布:
drawable.setBounds(0, 0, width, height);
您可以使用canvas.save();
canvas.translate(x, y);
drawable.draw(canvas);
canvas.restore();
将drawable剪辑到任何路径:
canvas.cliPath()
如果你需要抗锯齿,你可以试试这些问题: