我创建了一个应用程序来访问图库或相机中的图像。为此我有一个280 / 280dp尺寸的imageview。如何将图像从相机/图库(图像较大的图像)缩放到图像视图下方,完美地具有固定的宽度和高度,而不会扭曲Android中的图像:
<ImageView
android:layout_width="280dp"
android:layout_height="280dp"
android:id="@+id/mainImage"
android:background="@drawable/profile_settings_main_image"
android:layout_marginTop="19dp"
android:layout_below="@+id/container_toolbar"
android:layout_centerHorizontal="true"
android:focusable="false"
android:adjustViewBounds="true"
/>
activity_main.xml(完整版面)
<RelativeLayout 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"
tools:context="in.ABC.activity.ProfileSettings"
android:background="#93BFB6">
<LinearLayout
android:id="@+id/container_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
</LinearLayout>
<TextView android:layout_width="230dp"
android:layout_height="50dp"
android:textSize="22sp"
android:background="@drawable/profile_settings_name"
android:id="@+id/nameView"
android:textColor="#000000"
android:layout_marginTop="20dp"
android:layout_below="@+id/mainImage"
android:layout_alignLeft="@+id/mainImage"
android:layout_alignStart="@+id/mainImage"
android:layout_marginRight="1dp"
android:gravity="center"/>
<ImageView
android:layout_width="280dp"
android:layout_height="280dp"
android:id="@+id/mainImage"
android:background="@drawable/profile_settings_main_image"
android:layout_marginTop="19dp"
android:layout_below="@+id/container_toolbar"
android:layout_centerHorizontal="true"
android:focusable="false"
android:adjustViewBounds="true"
/>
<ImageButton
android:layout_width="50dp"
android:layout_height="100dp"
android:id="@+id/editName"
android:background="@drawable/profile_settings_image"
android:layout_alignTop="@+id/nameView"
android:layout_toRightOf="@+id/nameView"
android:layout_toEndOf="@+id/nameView"
android:layout_alignBottom="@+id/nameView" />
<ImageButton
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/editImage"
android:background="@drawable/profile_settings_image_2"
android:layout_alignBottom="@+id/mainImage"
android:layout_alignRight="@+id/mainImage"
android:layout_alignEnd="@+id/mainImage"
android:focusable="true" />
</RelativeLayout>
答案 0 :(得分:0)
如果图像的比例因子与ImageView
的比例因子不匹配,则在不牺牲清晰度的情况下无法匹配高度/宽度。您必须妥协,并决定是否要切断某些图像,或者让整个图像适合内部,但要确认会留下一些空间。
有关android:scaleType
http://www.techrepublic.com/article/clear-up-ambiguity-about-android-image-view-scale-types-with-this-guide/
答案 1 :(得分:0)
您可以尝试使用Android ImageView.ScaleType:
<ImageView
android:layout_width="280dp"
android:layout_height="280dp"
android:id="@+id/mainImage"
android:background="@drawable/profile_settings_main_image"
android:layout_marginTop="19dp"
android:layout_below="@+id/container_toolbar"
android:layout_centerHorizontal="true"
android:focusable="false"
android:adjustViewBounds="true"
android:scaleType="fitXY"
/>
代码结果:
原始图片: