JNI:对Android下Paint类中setStyle的封装方法
请教: JNI下,需要对Android下Paint类中setStyle的进行封装,在本地实现对setStyle的调用。
问题是怎样传入 Paint.Style.STROKE , Paint.Style.FILL , Paint.Style.FILL_AND_STROKE;它们的类型是定义为对象,还是字符串?
VOID CVMAndroidDC::SetStyle(int nStyle){ jstring style; //---------存储上述三个参数的变量; switch(nStyle) { case 0: style = CVMAndroidApp::GetInstance()->jar_Text2JString("Paint.Style.STROKE", JNI_FALSE); break; case 1: style = CVMAndroidApp::GetInstance()->jar_Text2JString("Paint.Style.FILL", JNI_FALSE); break; default: style = CVMAndroidApp::GetInstance()->jar_Text2JString("Paint.Style.FILL_AND_STROKE", JNI_FALSE); } static jmethodID jmidSetStyle=NULL; if(jmidSetStyle==NULL) { jclass jclsPaint=m_pJNIEnv->FindClass("android/graphics/Paint"); jmidSetStyle=m_pJNIEnv->GetMethodID(jclsPaint,"setStyle","(Landroid/graphics/Paint/Style;)V"); } m_pJNIEnv->CallVoidMethod(m_jobjPaint,jmidSetStyle,style); //此处传入style存储的三个参数之一}