我有一个应用程序,里面有很多小图片。提供"放大"功能我想打开一个Dialog(实现为带有对话框主题的Activity
),其中只包含带有所选图片的ImageView。
图像/对话框应尽可能大(即按比例缩放到屏幕尺寸),但也只能根据需要显示。这意味着对于风景图片,对话框也应采用横向格式,而不是填满整个屏幕(顶部/底部有黑条)。 基本上我希望对话框尽可能大到ImageView和ImageView(同时考虑到包含图像的宽高比)。
有没有办法实现这个目标?
请注意,显示的图像可能比可用的屏幕空间小很多,但在这种情况下应放大。我无法根据用户生成的内容提供不同分辨率/屏幕尺寸的图片。
我当前的对话框布局文件(适用于大于设备显示的图片,但不会缩小图片尺寸):
<?xml version="1.0" encoding="UTF-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/image_overlay" <!-- semi transparent background -->
android:gravity="center"
android:foregroundGravity="center">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:scaleType="centerInside"
android:layout_margin="8dp"/>
</FrameLayout>
答案 0 :(得分:1)
使用ScaleType.FIT_XY
。请记住,这会破坏纵横比(因为图像将被拉伸)。 official definition说
独立地在X和Y中缩放,以便src与dst完全匹配。这个 可能会改变src的宽高比。
例如,在您的Java代码中,使用
ImageView image = (ImageView) findViewById(R.id.img_background);
imgview.setScaleType(ScaleType.FIT_XY);
等效地,您可以在XML中使用:
<ImageView
...
android:scaleType="fitXY" />