得到它的工作! 但是正如我上面所说,您需要创建自己的类。 但是它很小。 我是在本文的Bob Lee的答案的帮助下创建的:Android:如何在保持宽高比的同时将图像拉伸到屏幕宽度?

package com.yourpackage.widgets;

import android.content.Context;

import android.util.AttributeSet;

import android.widget.ImageView;

public class AspectRatioImageView extends ImageView {

public AspectRatioImageView(Context context) {

super(context);

}

public AspectRatioImageView(Context context, AttributeSet attrs) {

super(context, attrs);

}

public AspectRatioImageView(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

}

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

int width = MeasureSpec.getSize(widthMeasureSpec);

int height = width * getDrawable().getIntrinsicHeight() / getDrawable().getIntrinsicWidth();

setMeasuredDimension(width, height);

}

}

现在在XML中使用它:

android:id="@+id/image"

android:src="@drawable/yourdrawable"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true"

android:adjustViewBounds="true" />

玩得开心!

====================================

通过使用android:adjustViewBounds =“ true”,找到了另一种仅在XML中执行相同操作的方法。 这里是一个例子:

android:layout_width="match_parent"

android:layout_height="wrap_content" >

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:adjustViewBounds="true"

android:src="@drawable/image1" />

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:adjustViewBounds="true"

android:src="@drawable/image2" />

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_weight="1"

android:adjustViewBounds="true"

android:src="@drawable/image2" />

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐