答案 0 :(得分:2)
如果您没有特定的要求来创建自定义视图,我建议您只使用矢量drawable:
<?xml version="1.0" encoding="utf-8"?>
<vector
xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:pathData="M0 12a12 12 0 1 1 0 0.01z"
android:fillColor="#8ab88c"/>
<path
android:pathData="M5.25 12l4.5 4.5l9 -9"
android:strokeColor="#ffffff"
android:strokeWidth="2.5"/>
</vector>
第一个<path>
元素使用椭圆弧命令绘制圆,第二个使用两个&#34; lineto&#34;用于绘制支票的命令。
这可以在ImageView
内部使用,包含您喜欢的任何尺寸,并且可以很好地缩放。
如果您必须实现自定义视图,我会在onDraw()
实现中使用相同的常规技术:
@Override
protected void onDraw(Canvas canvas) {
rectF.set(getLeft(), getTop(), getRight(), getBottom());
canvas.drawOval(rectF, fillPaint);
float checkmarkWidth = getWidth() * 0.5626f;
float delta = checkmarkWidth / 3.0f;
float initialX = (getWidth() - checkmarkWidth) / 2.0f;
float initialY = getHeight() / 2.0f;
path.reset();
path.moveTo(initialX, initialY);
path.rLineTo(delta, delta);
path.rLineTo(2 * delta, -2 * delta);
strokePaint.setStrokeWidth(getWidth() / 9);
canvas.drawPath(path, strokePaint);
}
答案 1 :(得分:0)
使用https://dashboard.heroku.com/apps/sistemacrm/deploy/heroku-git,您可以绘制一个drawable数组,其中索引最大的元素将被绘制在顶部。
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/circle" />
<item android:drawable="@drawable/check" />
</layer-list>
或者您可以使用LayerDrawable,右键点击可绘制文件夹&gt;新&gt;矢量资产&gt;图标&gt;搜索“检查圈子”。