[英]Skia jni SkCanvas::drawString() not rendering while shapes works
我已经为 Android api 构建了 Skia 24 将从 java 创建的 bitmap 传递给 jni,此代码可以很好地绘制除字符串之外的所有内容:
void draw(JNIEnv *env, jobject bmp) {
AndroidBitmapInfo dstInfo;
void *dstPixels;
AndroidBitmap_getInfo(env, bmp, &dstInfo);
AndroidBitmap_lockPixels(env, bmp, &dstPixels);
SkImageInfo info = SkImageInfo::MakeN32Premul(dstInfo.width, dstInfo.height);
sk_sp<SkSurface> surface(SkSurface::MakeRasterDirect(info, dstPixels, dstInfo.stride));
SkCanvas *canvas = surface->getCanvas();
canvas->drawColor(0xFFcccccc);
SkFont font;
SkPaint paint;
paint.setColor(SK_ColorGREEN);
paint.setStrokeWidth(30.f);
paint.setAntiAlias(true);
canvas->drawString("Skia is Best!", 99, 99, font, paint);
cvs->drawLine(100, 100, 300, 300, paint);
cvs->drawRoundRect(r, 11.f, 11.f, paint);
cvs->drawCircle(500, 600, 99.f, point);
AndroidBitmap_unlockPixels(env, bmp);
}
没有发生崩溃或错误,知道是什么原因造成的吗?
测试设备:小米 Mi10t Android 10
我已经解决了这个问题,如果有人有同样的问题,我在没有expat
的情况下编译 Skia ( skia_use_expat=false
),因为它在编译时有一些错误,修复错误后,用expat
重新编译 Skia,它工作得很好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.