AndroidContact_beta9:Android开发优秀资源分享

需积分: 5 0 下载量 102 浏览量 更新于2024-10-07 收藏 2.44MB ZIP 举报
资源摘要信息:"AndroidContact_beta9.zip是一个包含了Android应用开发资源的压缩包,其中的资源文件对于Android应用开发者来说是非常有价值的参考。从文件名称列表中可以看出,该压缩包主要包含了Android应用的编译文件、资源文件和源代码文件,这些都是Android应用开发中不可或缺的元素。 1. Android应用编译文件:在Android开发中,编译文件是应用生成的中间文件,包含了编译后的资源文件和类文件。在这个压缩包中,bin目录下的resources.ap_是编译后的资源包,而AndroidContact_beta9.apk是最终打包好的应用安装包。这表明该压缩包中包含了完整的应用开发流程中的编译产物,对于理解和分析应用构建过程非常有帮助。 2. Android应用资源文件:资源文件在Android应用中用于存放图片、布局、字符串等静态资源。在这个压缩包中,assets目录下存放的是未经过编译处理的原生资源文件,这些资源文件在应用运行时会被读取和使用。开发者可以查看这些文件来了解如何在应用中组织和管理资源。 3. Android应用源代码文件:源代码文件是应用功能实现的核心部分。在这个压缩包中,我们可以看到多个以.class为后缀的Java源码文件。例如,UserDetail.class、DBHelper.class、MainPrivacy.class、Main.class、AddNew.class、Main$4.class和MainPrivacy$4.class等。这些文件中包含了具体的方法实现,是研究Android应用业务逻辑和数据处理的宝贵资料。 - UserDetail.class文件可能包含与用户详情页面相关的逻辑处理,如用户信息的展示、编辑等功能。 - DBHelper.class文件通常负责数据库的创建、升级以及数据的CRUD(创建、读取、更新、删除)操作,对于理解Android应用中的本地数据存储机制很有帮助。 - MainPrivacy.class文件可能包含了应用隐私设置相关的界面和逻辑处理,涉及到用户隐私数据的保护。 - Main.class文件是应用的主界面文件,负责应用启动后的主界面展示和主要交互逻辑。 - AddNew.class文件可能是用于添加新联系人或新内容的界面逻辑实现。 - Main$4.class和MainPrivacy$4.class可能是内部类或匿名类的编译结果,用于处理特定的局部逻辑。 综上所述,AndroidContact_beta9.zip文件为Android应用开发者提供了一个完整的应用开发案例,涵盖从资源到代码的各个层面,是学习Android应用开发的重要参考资源。开发者可以借此了解Android应用的结构和开发流程,也可以对具体的功能实现进行研究,提升自己的开发能力。"

下列代码出现nan int错误,请解决:float smoothCot() { float err = -1; cogs.clear(); v_end = mesh.vertices_end(); // for (v_it = mesh.vertices_begin(); v_it != v_end; ++v_it) { cog[0] = cog[1] = cog[2] = valence = 0.0; //cout << valence<<"1" << endl; for (vv_it = mesh.vv_iter(*v_it); vv_it.is_valid(); ++vv_it) { double cot_weight = 0.0; MyMesh::HalfedgeHandle heh = mesh.find_halfedge(*v_it, *vv_it); if (!mesh.is_boundary(heh)) { MyMesh::HalfedgeHandle prev_heh = mesh.prev_halfedge_handle(heh); MyMesh::HalfedgeHandle next_heh = mesh.next_halfedge_handle(heh); MyMesh::VertexHandle prev_vh = mesh.to_vertex_handle(prev_heh); MyMesh::VertexHandle next_vh = mesh.to_vertex_handle(next_heh); MyMesh::Point prev_p = mesh.point(prev_vh); MyMesh::Point curr_pi = mesh.point(*v_it); MyMesh::Point curr_pj = mesh.point(*vv_it); MyMesh::Point next_p = mesh.point(next_vh); double cot_alpha = cot(curr_pi - prev_p, curr_pj - prev_p); double cot_beta = cot(curr_pi - next_p, curr_pj - next_p); cot_weight = cot_alpha + cot_beta; //cout << cot_weight<<"2" << endl; } cog += cot_weight *( mesh.point(*vv_it)-mesh.point(*v_it)); valence += cot_weight; //cout << valence<<"3" << endl; } cogs.push_back(cog / valence); } for (v_it = mesh.vertices_begin(), cog_it = cogs.begin(); v_it != v_end; ++v_it, ++cog_it) { if (!mesh.is_boundary(*v_it)) { MyMesh::Point p = mesh.point(*v_it); //*cog_it += mesh.point(*v_it); err = max(err, (p - *cog_it).norm()); mesh.set_point(*v_it, *cog_it); } } return err; }

2023-06-11 上传