(1)为了画音高线需要在代码中生成view控件,但随着每句歌词的字数不同控件数量也不同:
private TextView[] textView;
......
textView=new TextView[10];(假设返回的控件数量小于10)
for(int i=0;i<返回的控件数量;i++)
{
textView[i]=new TextView(this);
relativeLayout.addView(textView[i]);
}
(2)通过JNI返回一个数组:
void java_com_example_sms_adjustPitch_getStandardPitch
(JNIEnv *env,jobject obj,jstring path,jintArray correctPitch){
const char *c_path;
c_path=env->GetStringUTFChars(path,NULL);
jint length=env->GetArrayLength(correctPitch);
jint temp[length];
jint *arr=standardPitch(c_path);
for(int i=0;i<length;i++){
temp[i]=arr[i];
}
env->SetIntArrayRegion(correctPitch,0,length,temp);
}
本文介绍了一种在Android应用中根据歌词字数动态创建TextView控件的方法,用于绘制音高线,并通过JNI技术从C/C++层向Java层传递整型数组的具体实现。
987

被折叠的 条评论
为什么被折叠?



