Android CanvasWatchFaceService.Engine onDraw рисует векторный xml

У меня есть VectorDrawable xml, при создании циферблата для Android в методе onDraw (Canvas Canvas, Rect bounds) могу ли я нарисовать этот 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>

person Jeffrey Liu    schedule 29.05.2015    source источник
comment
да, вы можете нарисовать это, см. Drawable javadocs   -  person pskink    schedule 29.05.2015
comment
Да, я это вижу, и я думаю, что сейчас мне нужно использовать mrVector для рисования. Можете привести хороший пример?   -  person Jeffrey Liu    schedule 30.05.2015
comment
Всего две строчки кода ...   -  person pskink    schedule 30.05.2015
comment
Вы на самом деле пробовали? Я пробовал это, и это не сработало.   -  person Jeffrey Liu    schedule 03.06.2015
comment
Я не пробовал mrVector, но он будет работать как любой другой Drawable   -  person pskink    schedule 03.06.2015


Ответы (1)


Вот простой код 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);
    }
}
person Geka    schedule 25.09.2015