我正在尝试设置我正在从网上下载的图像。我正在使用一个库来帮助我这样做ion。问题是我需要调整图像大小以适应我的屏幕并保持纵横比。高度似乎工作正常,但我想设置位图的宽度以适应设备的整个宽度,同时保持纵横比。但它不起作用,双方的形象都缩短了......
<ImageView
android:id="@+id/imageView"
android:layout_width="fill_parent"
android:layout_height="@dimen/_height" />
代码:
DisplayMetrics metrics = getResources().getDisplayMetrics();
mWidth = metrics.widthPixels;
mHieght = (int) getResources().getDimension(R.dimen._height);
Ion.with(imageView).resize(mWidth, mHieght).load(url)
编辑:
这是android:scaleType="centerCrop"
答案 0 :(得分:0)
ImageView
具有比例类型功能。检查ImageView.ScaleType。我认为centerInside
或fitCenter
正是您所寻找的。 p>
更新
抱歉,我们一开始并没有意识到你有一个固定的高度。centerCrop
应该是答案。
答案 1 :(得分:0)
如果您的图像具有已知的最大尺寸,则可以将布局的宽度设置为等于图像集的最大宽度,然后将所有图像设置为居中。这对我有用:
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<RelativeLayout
android:layout_width="1920px"
android:layout_height="fill_parent"
android:layout_gravity="center">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:background="@drawable/your_image" />
</RelativeLayout>
</FrameLayout>
其中1920px是图像集的最大宽度。 结果是可以接受的,编辑:图像完全居中。
答案 2 :(得分:0)
我在父级布局上使用“ paddingLeft”和“ paddingRight”实现了这一目标;同时为子版面/ ImageView的填充和边距应用负值。 “ android:clipToPadding”标志必须为false,以防止剪切。
<LinearLayout
...
android:paddingLeft="10sp"
android:paddingRight="10sp"
android:clipToPadding="false"
...>
<ImageView
android:layout_marginLeft="-10sp"
android:layout_marginRight="-10sp"
android:paddingRight="-10sp"
android:paddingLeft="-10sp"
...>