当前位置: 首页 > 知识库问答 >
问题:

如何在表面视图上旋转叠加图像后设置高度和宽度

孙思源
2023-03-14

我想在ImageView上设置动态图像,但覆盖表面视图,并执行一些基本的图像编辑操作,如缩放、旋转和转换。现在,当我在横向模式下使用屏幕旋转旋转ImageView时,它需要竖屏的高度和宽度。我将我的活动锁定在竖屏中。

final int ROTATION_O    = 0;
final int ROTATION_90   = 90;
final int ROTATION_180  = 180;
final int ROTATION_270  = 270;

private int rotation = 0;
public void onOrientationChanged(int orientation) {
    if( (orientation < 35 || orientation > 325) && rotation!= ROTATION_O){ // PORTRAIT
        rotation = ROTATION_O;
        imgView.setRotation(rotation);
    }
    else if( orientation > 145 && orientation < 215 && rotation!=ROTATION_180){ // REVERSE PORTRAIT
        rotation = ROTATION_180;
        imgView.setRotation(rotation);
    }
    else if(orientation > 55 && orientation < 125 && rotation!=ROTATION_270){ // REVERSE LANDSCAPE
        rotation = ROTATION_270;
        imgView.setRotation(rotation);
    }
    else if(orientation > 235 && orientation < 305 && rotation!=ROTATION_90){ //LANDSCAPE
        rotation = ROTATION_90;
        imgView.setRotation(rotation);
    }
}

共有1个答案

尉迟正奇
2023-03-14

这个图书馆可以帮助你

uCrop

我想如果你在屏幕操作改变时获得高度和宽度,也许可以解决你的问题

@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);

// Checks the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
    Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
    Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
}
}
 类似资料:
  • 我见过很多关于如何分别设置ImageView和GridView的高度和宽度的问题。这里,这里,还有这里 但是,我想知道如何设置两者。 这是我的设置。在我的GridView中,我有一个ImageView和一个TextView。我有一些不同宽度和大小的图像,我想调整它们的大小,使其始终是屏幕正方形大小的1/3。下面,我有一段文字描述。 这是我到目前为止的代码。。。 gallerygridview.xm

  • 我想显示 3x3 大小的网格视图。我想根据设备大小设置高度和宽度。我从这个链接中获取参考。 主要活动- 活动_主要- 编辑- 就像首先得到屏幕高度和宽度,然后每个项目的高度和宽度是我得到的屏幕高度和宽度值的1/3。

  • 问题内容: 为什么下面的代码返回高度:-1,这意味着高度未知。如何获得图像的高度? 问题答案: 使用ImageIO.read(URL)或ImageIO.read(File)代替。加载时它将阻塞,返回后将知道图像的宽度和高度。 例如 或者,MediaTracker向由异步加载的映像中添加A ,Toolkit然后等待其完全加载。

  • 问题内容: 如果我有: 然后 会拉伸以填充该空间。我希望图像保持相同大小,但是要在DOM中占用那么多空间。我是否必须添加封装或?我讨厌添加样式标记。 问题答案: 是的,您需要一个封装div: 与类似: 其他解决方案(填充,边距)比较繁琐(因为您需要根据图像的尺寸计算正确的值),但也不能有效地使容器小于图像。 同样,上述内容可以更容易地适用于不同的布局。例如,如果您希望图像位于右下角:

  • 我正在捕获图像并设置为图像视图。对我来说很管用。但问题是,当我将图像设置为ImageView时,它会被旋转。感谢任何帮助。

  • 我有一个公式来获得旋转矩形的高度和宽度,如下所示: 因此,x,y值是旋转后的新高度和宽度。 示例矩形旋转成15度,高度74和宽度110是旋转后的值,我想从这些转换后的值中找出矩形的原点高度(50)和宽度(100),我需要通过公式找出这个像上面一样,所以我可以用不同的值替换。旋转矩形的示例图像