Articles of 方向

传感器TYPE_ACCELEROMETER / TYPE_MAGNETIC_FIELD和TYPE_ORIENTATION之间的值不同

有两种方法可以获得3个旋转值(方位角,俯仰,滚动)。 一个是注册TYPE_ORIENTATIONtypes的监听器。 这是最简单的方法,我从每次旋转中得到正确的值范围,如文档所示:azimuth:[0,359] pitch:[ – 180,180] roll:[ – 90,90] 另一个,你第一次看到它时最精确和最复杂。 Android推荐它,所以我想使用它,但我得到不同的值。 方位角:[ – 180,180]。 -180 / 180是S,0 i N,90 E和-90 W. 音高:[ – 90,90]。 90是90,-90是-90,0是0但-180/180(屏幕向下)是0。 roll:[ – 180,180]。 我应该得到相同的值,但有小数,对吧? 我有以下代码: aValues = new float[3]; mValues = new float[3]; sensorListener = new SensorEventListener (){ public void onSensorChanged (SensorEvent event){ switch (event.sensor.getType ()){ case Sensor.TYPE_ACCELEROMETER: aValues = […]

如何使用加速度计获得运动方向?

我正在开发一个Android应用程序,我想知道是否有可能检测到一个轴固定的运动方向。 例如,我想把手机放在桌子上并在我移动它时检测方向(左,右,上和下)。 距离没有必要,我只想知道准确的方向。

Android – 如何处理跌倒检测算法

我希望能够在我的应用程序中使用一个相当简单的跌倒检测算法。 在onSensorChanged()中,我得到当前x,x,z值的绝对值,并从中减去SensorManager.GRAVITY_EARTH(9.8 m / s)。 结果值必须连续10次大于阈值,以设置表示加速度计检测到下降的标志,阈值约为8m / s。 此外,我正在比较阈值已经通过时手机的方向和阈值不再通过时的方向,这设置了另一个标志,表示方位传感器检测到跌倒。 当两个标志都设置好后,就会发生一个事件,检查用户是否正确等等。我的问题是阈值,当手机直接保持时,加速度计的绝对值约为9.8米/秒,但当我保持静止时在某个角度它可以超过15米/秒。 这导致其他事件触发跌倒检测,如果我增加阈值以避免这种情况,则不会检测跌倒。 任何人都可以在这里给我一些建议,我应该使用哪些可能的值或如何改进我的方法? 非常感谢。

更改方向,丢失所有列表项

当我在Android设备上测试我的应用程序时,我的Android手机从横向变为纵向,我的列表视图中的所有列表项的结果都消失了。 为什么? 怎么管理?

检测适配器中的滚动方向(向上/向下)

我想在我的项目中模仿Google Plus应用程序,因为它现在似乎是参考。 滚动时的列表视图效果非常好,我想做类似的事情。 我已经开始使用LayoutAnimationController http://android-er.blogspot.be/2009/10/listview-and-listactivity-layout.html LayoutAnimationController controller = AnimationUtils.loadLayoutAnimation( this, R.anim.list_layout_controller); getListView().setLayoutAnimation(controller); 这似乎很糟糕,因为并非所有元素都是animation的: 所以我最后使用了适配器的getView并使用它: AnimationSet set = new AnimationSet(true); Animation animation = new AlphaAnimation(0.0f, 1.0f); animation.setDuration(800); set.addAnimation(animation); animation = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0.0f,Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 1.0f,Animation.RELATIVE_TO_SELF, 0.0f ); animation.setDuration(600); set.addAnimation(animation); row.startAnimation(set); 结果太棒了,我真的很开心! 不幸的是,只有当我从列表的顶部滚动到底部时它才有效! 我想在另一边滚动时使它工作,我需要改变一点TranslateAnimation。 所以我的问题是,有没有办法检测我是否在我的适配器中向上或向下滚动?

不可靠的Android Compass定位(低通滤波器)

我正在创建一个应用程序,我需要根据设备的方向定位ImageView。 我使用MagneticField和Accelerometer Sensors中的值来计算设备方向 SensorManager.getRotationMatrix(rotationMatrix, null, accelerometerValues, magneticFieldValues) SensorManager.getOrientation(rotationMatrix, values); double degrees = Math.toDegrees(values[0]); 我的问题是ImageView的定位对方向的变化非常敏感。 使imageview不断跳到屏幕上。 (因为度数变化) 我读到这可能是因为我的设备接近可能影响磁场读数的东西。 但这不是它看起来的唯一原因。 我尝试下载一些应用程序,发现“ 3D罗盘 ”和“ 指南针 ”的读数仍然非常稳定(当设置噪声滤波器时),我想在我的应用程序中使用相同的行为。 我读到我可以通过添加“ 低通滤波器 ”来调整读数的“噪音”,但我不知道如何实现这一点(因为我缺乏数学)。 我希望有人可以帮助我在我的设备上创建更稳定的读数,其中设备的一点点移动不会影响当前的方向。 现在我做了一个小 if (Math.abs(lastReadingDegrees – newReadingDegrees) > 1) { updatePosition() } 过滤噪音的升值。 但它不能很好地工作:)

如何在webviewresize时将网页调整到webview的宽度(无需重新加载)

我有一个HTML页面和一个全屏Android webview。 HTML内容大于webview的可见区域。 我想将HTML内容适合webview的宽度。 真正重要的是:当设备的方向发生变化时,webview将不会重新加载,这意味着它只会resize并且内容仍然适合宽度。 还有一件事:因为内容已经缩小,用户可以将其放大到最大比例为100%。 当内容被缩放并且方向改变时,我希望内容再次适合宽度。 编辑1 :我可以在HTML头部更改元标记,但其内容仍然大于webview的可见区域。 我支持Android 2.3及更高版本。 编辑2 :感谢有关响应式网页设计的建议。 我知道它是什么,我能做到。 问题是在这种情况下我无法改变很多HTML内容。 TL; DR :如何在Webviewresize时始终将更大的HTML内容放入Android webview的宽度,而无需重新加载内容。 (我可以更改webview,而不是HTML。)

Android ICS Launcher 4.0.x无法保持屏幕方向

我有一个Android ICS Launcher 4.0.x的奇怪案例。 前提: 具有root权限的ICS设备 下载Android ICS Launcher 4.0.3 / 4源代码(修改并运行) 程序: 进入市场(Play商店),下载“Go Task Manager” 在Launcher上打开Widgets选项卡,find“Mem Optimize”,拖动到主屏幕(工作区) 下载并安装“Fruit Ninja” 在主屏幕上的“Mem Optimize”小部件旁边创建“Fruit Ninja”快捷方式。 执行“Fruit Ninja”并将手机放在LANDSCAPE中(在此位置握住它,不要更改此项) 在“水果忍者”的菜单屏幕上,切片“退出”,选择“是” 现在回到Launcher主屏幕,点击“Mem Optimize”小部件 目前的结果: 在步骤7之后,屏幕旋转到LANDSCAPE一段时间并返回PORTRAIT。 期望: 在步骤7之后,屏幕应保持在PORTRAIT中。 我的尝试(修改Launcher ICS源代码): 添加到“Manifest.xml”: android:screenOrientation=”portrait” =>仍然无法解决问题。 处理配置更改, android:configChanges=”orientation|screenSize” =>仍然无法解决问题。 使用: setRequestedScreenOrientation(PORTRAIT) =>仍然无法解决问题。 我试过在Android 2.x上工作过的; 然而,从4.0.3+开始,它不能按预期工作。 有没有人对此有任何想法?

如何在转换为横向模式android时继续播放video

我在肖像模式(不是在全屏幕上)和我改变时播放video(在VideoView上) 横向模式video停止。 当我将其更改为横向时,video将全屏显示并继续播放。 有什么建议吗?

Android – 强制语言环境重置方向更改

我尝试将我的应用程序中的区域设置强制为用户指定的区域设置。 由于这可能用于演示,我想在应用程序中更改语言/区域设置,而不是随时更改整个设备。 我环顾四周,试着用我在这里find的每一个提示。 结果:我可以使用新语言重新启动我的测试活动,但如果我更改方向,则区域设置将始终重置为设备。 我上传了一个简约项目,以便您可以重现我的问题。 请忽略UI的缩小,这并不重要:)