Android CanvasWatchFaceService.Engine onDraw 绘制矢量xml

标签 android canvas watch ondraw android-vectordrawable

我有一个VectorDrawable xml,当为Android创建表盘时,在onDraw(Canvas canvas, Rectbounds)方法中,我可以绘制这个VectorDrawable吗?像canvas.draw(vector.xml),我不知道如何,请帮忙!

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:height="64dp"
    android:width="64dp"
    android:viewportHeight="600"
    android:viewportWidth="600" >
    <group
        android:name="rotationGroup"
        android:pivotX="300.0"
        android:pivotY="300.0"
        android:rotation="45.0" >
        <path
            android:name="v"
            android:fillColor="#000000"
            android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
    </group>
</vector>

最佳答案

这是WatchFaceService.Engine的简单代码

private class Engine extends CanvasWatchFaceService.Engine {

    private Drawable mVectorDrawable;

    @Override
    public void onCreate(SurfaceHolder holder) {
        super.onCreate(holder);
        ...
        Resources resources = FooBarWatchFace.this.getResources();
        mVectorDrawable =resources.getDrawable(R.drawable.rounded);
    }

    @Override
    public void onDraw(Canvas canvas, Rect bounds) {
        int width = bounds.width();
        int height = bounds.height();
        ...
        mVectorDrawable.setBounds(0,0,width,height);
        mVectorDrawable.draw(canvas);
    }
}

关于Android CanvasWatchFaceService.Engine onDraw 绘制矢量xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30523414/

相关文章:

javascript - 如何知道文件是否实际打开或关闭?

android - Android 许可的 IllegalArgumentException 错误

java - 连接 Google+ 登录时应如何使用 Google Api Key?

Android SharedPreferences 或 SQLite 存储

javascript - 在小 Canvas 上看到大 Canvas 的一部分

javascript - 清除 Canvas 不起作用

javascript - 如何在游戏中的障碍物底部添加 2d 碰撞?

javascript - webpack watch 不触发

javascript - $watch 没有在函数之外更新数组?

Android locale_config.xml 未绑定(bind)前缀错误