【问题标题】:How to scale small imageview to fill large scrollview?如何缩放小图像视图以填充大滚动视图?
【发布时间】:2013-05-31 13:30:23
【问题描述】:

如何创建一个带有屏幕填充滚动视图的布局,该布局在图像视图中具有一个小图像,缩放以适应整个滚动视图并可以滚动?例如。 720x1280 显示器具有全屏滚动视图 (fill_parent)。里面是一个线性布局(fill_parent)。即图像视图中的 300x900 位图,放大到 720x2160,填充屏幕宽度并超过垂直边界,并且可以在滚动视图中向上/向下滚动。

该解决方案应适用于所有屏幕尺寸,以支持从手机到平板电脑的多种设备。

【问题讨论】:

    标签: android imageview scrollview scale


    【解决方案1】:

    这对我有用:

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
    
            <ImageView
                android:layout_width="720dp"
                android:layout_height="2160dp"
                android:src="@drawable/image"
                android:scaleType="fitXY"/>
    
        </LinearLayout>
    
    </ScrollView>
    

    如果您需要在任何屏幕尺寸上进行这项工作,请以编程方式进行:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        imageView = (ImageView) findViewById(R.id.imageView);
    
        Display display = getWindowManager().getDefaultDisplay();
        Point size = new Point();
        display.getSize(size);
        int width = size.x;
        int height = size.y;
    
        imageView.getLayoutParams().width = width;
    }
    

    【讨论】:

    • 可以,但该解决方案仅适用于固定屏幕尺寸。如果同一应用在 600 x 1024 或 320 x 480 显示器上运行,则图像不会缩放。
    • 您需要以编程方式缩放 ImageView,或提供不同的布局。 ImageView 需要具有正确的宽度和高度布局参数。这些对于不同的屏幕尺寸会有所不同。
    • 好的。太糟糕了。似乎 Android 是围绕以编程方式做所有事情而构建的。
    • 谢谢。我的目标是 2.2,所以 getSize() 不起作用,但我应该能够调整它
    • 是的,使用getWindowManager().getDefaultDisplay().getWidth();
    【解决方案2】:

    如果滚动视图的高度和宽度是填充父级,而不是使用小图像设置背景,它将自动在您的布局中展开

    【讨论】:

    • 这将缩放图像以适应屏幕,但不大于屏幕以便可以滚动。在 imageview 之后我还想要一个 buttonview。
    • 滚动有效,但如果您没有总高度大于屏幕大小的元素并且它们将超出屏幕范围
    • 我的滚动视图只包含一个图像。拥有背景图像不会适当地缩放它。
    猜你喜欢
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多