我正在使用以下代码:
public class SquareImageView extends ImageView {
...
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int width = getMeasuredWidth();
setMeasuredDimension(width, width);
}
... }
<com.project.SquareImageView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:scaleType="centerCrop"/>
要在我的项目中使用方形ImageView。尽管我想对其进行修改,以便用户进入横向模式时ImageView的静态高度由我选择,但它的效果很好。我不想为其创建新的布局。所以,我想知道是否有可能在课堂上做我需要的事情。
我已尽力检测课堂上的屏幕方向更改,但失败了。请注意,我希望在横向上使用较小版本的ImageView,并希望将图像裁剪到我选择的新高度。
谢谢。
答案 0 :(得分:0)
视图不知道方向何时更改。因此,如果没有一些帮助,您将无法做到。
最简单的方法是为横向模式创建一个单独的xml文件,并使用所需的任何ImageView大小。第二种最简单的方法是在Activity的onCreate中根据方向修改视图的layoutParams。
另一种方法是关闭定向更改后的自动活动重新启动,然后实现一个onConfigChange,该onConfigChange将在视图onSetOrientation()上调用一个函数,该功能告诉它新的定向是什么,然后该视图可以进行相应的调整。
但是您真的不想这样做。只需选择两种布局即可。