你好,我有一个 ImageView(background),它的高度应该对应于屏幕高度,另一方面宽度应该保持不变。
之前是这样的
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="match_parent">
<ImageView
android:id="@+id/songDetails_songImage"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:contentDescription="@string/songDetails_cd_songCover"
app:srcCompat="@drawable/default_song_cover" />
</HorizontalScrollView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
...
效果很好—— ImageView 占据了整个背景,用户可以向右或向左滚动以查看整个图像。
我的目标是为滚动设置动画,为此我需要摆脱水平 View (以防止用户滚动)但是每当我将 HorizontalScrollView 更改为框架/相对布局(宽度设置为 wrap_content)时 ImageView 按比例缩小以适合屏幕。
有没有办法保持 imageView 的宽度不变(高度与屏幕的宽度匹配),以便它保持比设备屏幕大?(不裁剪)
然后我可以使用自定义动画向右滚动。
我看过类似的问题,但找不到任何适合这种情况的问题。
最佳答案
您可以做的是尝试覆盖 HorizontalScrollView 的 onTouchListener。
例如,像这样:
scrollView.setOnTouchListener(new OnTouch());
private class OnTouch implements OnTouchListener
{
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
}
这将禁止用户滚动 HorizontalScrollView,而您仍然可以通过编程方式滚动它。
关于android - 比屏幕大的ImageView作为背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44414855/