gpt4 book ai didi

Android如何在设备旋转时保持 View 方向不变

转载 作者:太空狗 更新时间:2023-10-29 13:26:29 25 4
gpt4 key购买 nike

有几个堆栈溢出问题涉及将 Activity 保持在恒定方向,建议设置 android:screenOrientation (或 this )或到 deal with the configuration changes manually .

但是,如果想要为大多数 View 保留自动布局的好处,但要使一个 View 保持不变的方向,那么这些答案并不能解决问题。例如,我有一个内容主视图(位图)和可选的几个“工具栏”。当设备从纵向旋转到横向时,我希望工具栏自动重新布局。另一方面,主内容 View 有一个位图,它应该随设备旋转。这是我在 onDraw 中使用的一个简单代码:

    protected void onDraw(Canvas canvas) {
super.onDraw(canvas);

Bitmap bm = ... // code to get a bitmap
if (bm != null) {
canvas.drawBitmap(bm,0,0,mPaint);
}
}

这显然不能按预期工作,因为当设备方向发生变化时, View 会重新布局,并且其坐标系会在此方向上相对于物理设备旋转 90 度。对此进行补偿的一种方法是,如果设备方向已更改,则使用 Matrix 对象绘制旋转 90 度的位图。然而,为了使 View 输入点和位图上的点保持一致,输入坐标也必须更改。

因此,经过这么长的解释后,我的问题是:我能否保持 View ,使其相对于设备的坐标系在方向改变时不旋转。

这是一张图片,表达了我想要的和我目前得到的(还说明了 View 的 xy 坐标系)。

enter image description here

最佳答案

在 list xml 中的 Activity 中使用具有纵向值的屏幕方向属性

喜欢

 <activity
android:name=".YourActivityName"
android:screenOrientation="portrait" >
</activity>

关于Android如何在设备旋转时保持 View 方向不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20771636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com