目前,我正在尝试使用方向传感器值使用getRotation()方法旋转3D立方体.当Android设备旋转到某些边界以上时,会观察到一些意外行为.例如,如果我让设备'站起来','roll'的价值就变得疯狂了.
此外,我正在经历类似于所谓的万向节锁定的现象.唯一的区别是,即使在将传感器值应用于3D旋转之前,我也遇到了这个问题.当我尝试通过仅围绕"俯仰"轴旋转设备来改变"俯仰"值时,"偏航"值也会根据俯仰的旋转而改变.这对我来说似乎完全不合理.
有人能帮帮我吗?我在这个问题上坚持了一个月.
我看到很多关于过滤Accelermeter值的例子,以消除重力(高通滤波器).
但是大多数都是一阶的,据说很简单,但是迟到而不是最好的(尽管我对滤波器或DSP一无所知).
这里有人说DSP中存在用于感知运动的更好的解决方案.遗憾的是,我甚至无法想象会是什么,因为我完全不喜欢这个领域.
我希望有人能够分辨出处理传感器时可以使用的滤波器类型.当然,即使对具体算法进行简要介绍也会非常高兴:)
提前致谢.
我正在尝试使用ViewPager + FragmentPagerAdapter.
我目前正在使用最新的Android支持包v4 来切换片段
我的应用中有5个标签.当我选择第四个标签时,应用程序突然退出并说"无法更改片段的标记~~".
我没有尝试替换布局xml文件中包含的Fragment,所以我无法弄清楚原因.
以下是发生错误的代码:
@Override
public void onTabSelected(ActionBar.Tab tab,
FragmentTransaction fragmentTransaction) {
// When the given tab is selected, switch to the corresponding page in
// the ViewPager.
mViewPager.setCurrentItem(tab.getPosition());
}
Run Code Online (Sandbox Code Playgroud)
下面是我正在使用的FragmentPagerAdapter的片段
@Override
public Fragment getItem(int i) {
if (fragment_list.get(i) == null) {
fragment_list.add(i, getFragment(i));
}
return fragment_list.get(i);
}
private Fragment getFragment(int index) {
switch (index) {
case TOP:
return UseCaseListWithOptionFragment.newInstance(
URLHelper.USE_CASES_TOP_URL, R.array.comment);
case FEED:
int user_id = UserHelper.getCurrentUser(MainActivity.this).id;
return UseCaseListFragment.newInstance(
URLHelper.getMyFeedsURL(user_id), true);
case RECENT:
return …
Run Code Online (Sandbox Code Playgroud)