java - 缩放 View 以适应屏幕旋转/模拟 onScale() 方法

标签 java android canvas scaling

我正在构建草图应用程序,我想支持屏幕旋转。但在旋转时,我想像在画廊中一样调整我的 View 大小(因此它适合一个坐标)。我使用 Canvas 、矩阵、屏幕动画师和许多其他东西将其缩放到横向或纵向模式,但遗憾的是我无法实现它。

所以问题是我如何缩放绘制的 Canvas 以适应横向和纵向模式?

编辑

好吧,所以我实际上想通过捏合缩放来实现我所获得的效果。我想缩小我的视野。 setScaleX 没有给我需要的结果,所以我需要以某种方式从 ScaleGestureListener 模拟 onScale() 方法。我怎么能这么做呢?

最佳答案

我不确定是否还有其他有效的方法,但这对我有用 -

@Override
public void onConfigurationChanged(Configuration newConfig)
{
    super.onConfigurationChanged(newConfig);
    if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE)
    {
        startActivity(new Intent(this, ABCDActivity.class));
    }
}

因此,每次方向发生变化时,您都可以加载新的 Activity 。或者,您可以使用 Canvas 和其他内容创建一个 fragment ,然后不必加载整个 Activity ,只需在方向发生变化时加载绘制有适合横向模式的 Canvas 的 fragment 。

关于java - 缩放 View 以适应屏幕旋转/模拟 onScale() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25832682/

相关文章:

java - Java中盒装原语的存储成本是多少?

android - 方向改变时处理 SQLiteOpenHelper

javascript - 使用 HTML 5 和 JS 创建飘落的雪花

javascript - 如何在 HTML5 Canvas 中临时更改圆圈颜色

java - 如何将 jconsole 安装/添加到我的 JDK?

java - Java 中是否存在针对具有固定哈希长度的字符串的现成双向哈希函数?

debugging - 获取 JDK 1.6.0_23 的源代码以调试 JVM/热点垃圾收集

android - MediaCodec.dequeueOutputBuffer 在 Android 上编码 h264 时花费很长时间

java - 即使我已经安装了jdk,Android Studio也无法识别jvm

javascript - 如何检测 Html Canvas 的某个区域是否被点击