Android 怎么在一个线性布局中动态添加一个已经存在的布局

Android 怎么在一个线性布局中动态添加一个已经存在的布局,第1张

在Android的layout样式定义中,可以使用xml文件方便的实现,有时候为了模块的复用,使用include标签可以达到此目的。

<Linearlayout

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_below="@id/top" >

<include layout="@layout/otherlayout">

</Linearlayout

include不是一个对象,它只是一条预处理指令,通过这指令你就可以使用C/C++函数库中的函数。如:

<!--#include “头文件名”-->

java要调用C/C++的函数库中的函数的话,可以通过JNI(java本地接口)来实现。

介绍一下简单的流程:

1、首先在java中申明一个本地的方法(Native修饰),不要去实现这个方法。

2、接着通过javah命令编译这个java文件,生成一个扩展名为.h的头文件,在这个头文件中编译器会自动为你申明一个跟你在java中申明的本地方法相对应的一个函数。

3、然后创建一个.c或者.cpp的文件,在里面实现第三步生成的那个函数,在这个文件中需要将第三步的那个头文件include进来。

4、再使用gcc(在linux下)或者其他方法将你实现的本地代码生成动态链接库也叫做共享库。以前做windows开发的人都知道动态链接库.dll,但是android是基于linux,在linux有一扩展名为.so的文件,它其实跟在windows中的dll库文件差不多,这一步就是生成.so文件。

5、你需要在你的java程序中加载这个库文件(.so文件),比如:

System.load(你的库文件路径);

你就可以在你的程序其他地方调用在第一步申明的那个本地方法了。

6、最后就是运行java程序。

举个在java中的代码的例子:

public class MyJNI{

static {

try{

System.load("/home/Jni/test.so")//也可以使用loadLibrary方法,区别的话你可以去百度一下

}catch(UnsatisfiedLinkError e){Log.e("JNI",e.toString())}//抛出找不到对应的本地语言定义的异常

}

public static native String method_name(int params)//申明本地方法,这些参数返回值都是根据自己需要定义的

public String usingNativeMethod(int x){

method_name(x) //跟普通成员函数一样调用

}

}

详细的如何使用JNI可以参考一些专业的博客。

安卓手机可以用includewindows.h。编译器是安卓版叫c4android,可以用includewindows.h。安卓(Android)是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的 *** 作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11688174.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存