1.Github上下载文件,找到相应的jar包,添加项目的libs文件夹下,等等一些配置(22以上,项目--属性--Java build path--libaries 添加jar包--order and export勾选);
2.mainfiest文件下添加许可 ;
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.sensor.accelerometer" /> <uses-feature android:name="android.hardware.sensor.compass" />
3.新建布局文件,主要是MyarFragmentSupport ,核心类完成大部分任务;
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <fragment android:id="@+id/arFragment" android:name="com.ar.android.fragment.MyarFragmentSupport" android:layout_width="match_parent" android:layout_height="match_parent" /> </FrameLayout>
4.在activity 创建时新建实例MyarFragmentSupport , 并指定布局;
private MyarFragmentSupport marFragment; // ... @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); setContentView(R.layout.demo_ar); marFragment = (MyarFragmentSupport) getSupportFragmentManager().findFragmentById(R.id.arFragment); // ... }
5. 实例化一个World 也比较核心,管理了增强现实世界中的object ,叠加物体,可以是多媒体模型,等等;
World world = new World(context);//world设置自定义的坐标 ,比如室内等等等
world.setGeoPosition(经度, 维度);
GeoObject go1 = new GeoObject(1l);
go1.setGeoPosition(lon1, lat1); go1.setImageResource(R.drawable.bitmap1); go1.setName("object1"); GeoObject go2 = new GeoObject(2l); go2.setGeoPosition(lon2, lat2); go2.setImageUri("sd file"); go2.setName("bitmap2"); world.addArObject(go1); world.addArObject(go2); marFragment.setWorld(mWorld);
6.大致过程就这样了,后边还有各种自定义的插件等工具,还有各种交互设计等,未完待续。。。。