android - 比屏幕大的ImageView作为背景

标签 android android-layout android-imageview horizontalscrollview

你好,我有一个 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 (以防止用户滚动)但是每当我将 Horizo​​ntalScrollView 更改为框架/相对布局(宽度设置为 wrap_content)时 ImageView 按比例缩小以适合屏幕。

有没有办法保持 imageView 的宽度不变(高度与屏幕的宽度匹配),以便它保持比设备屏幕大?(不裁剪)

然后我可以使用自定义动画向右滚动。

我看过类似的问题,但找不到任何适合这种情况的问题。

最佳答案

您可以做的是尝试覆盖 Horizo​​ntalScrollView 的 onTouchListener。

例如,像这样:

scrollView.setOnTouchListener(new OnTouch());

private class OnTouch implements OnTouchListener
{
    @Override
    public boolean onTouch(View v, MotionEvent event) {
    return true;
    }
}

这将禁止用户滚动 Horizo​​ntalScrollView,而您仍然可以通过编程方式滚动它。

关于android - 比屏幕大的ImageView作为背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44414855/

相关文章:

Android - 更改 ImageView 可绘制对象消耗的内存过多

android - Svg 在设备中不可见但在 android xml 中可见

android - 在 Android 库中调试 native 代码

java - 如何在 LinearLayout 中添加 MapView 和其他组件?

android - 自定义进度对话框动画

android - ImageView 导致崩溃

android - 将 Recycler View 项目拖放到 Image View

java - EditText 的空值

android - 是否有适用于 Android 的 VPN 提供商 API?

android - 如何使用 ActionBarSherlock 制作这样的弹出菜单