Android Studio如何在整个屏幕上显示图像大小

时间:2019-08-25 03:37:17

标签: android image size

我有一张图片,ImageView的宽度为45dp,高度为45dp。如果我使用手机,该图像看起来不错,但在另一个电话上的图像看起来很小。如果使用图片转换器并将xhdpi xxhdpi ...放入,图片仍然很小。 (我想在所有屏幕尺寸上都获得相同的体验。例如,在像素2宽度45dp高度45dp看起来非常好,Nexus宽度65dp高度65dp很好,三星tab3 100dp看起来非常好。我该怎么做?

对不起,我的英语不好。

2 个答案:

答案 0 :(得分:0)

在应用程序的Dimens软件包中的res文件夹下,使用单独的dimen值,例如dimens-ldpi,dimens-hdpi,dimens-mdpi,dimens-xhdpi,dimens-xxhdpi,dimens-xxxhdpi。 在每个文件中创建一个值,并为它们使用不同的值。

或者,you can visit this question. There's multiple solution mentioned with example.

答案 1 :(得分:0)

您需要通过计算屏幕宽度和高度的比率来保持图像视图的长宽比。

创建一个Java文件,例如 ProportionalImageView

public class ProportionalImageView extends ImageView {

public ProportionalImageView(Context context) {
    super(context);
}

public ProportionalImageView(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public ProportionalImageView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    Drawable d = getDrawable();
    if (d != null) {
        int w = MeasureSpec.getSize(widthMeasureSpec);
        int h = w * d.getIntrinsicHeight() / d.getIntrinsicWidth();
        setMeasuredDimension(w, h);
    }
    else super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}

然后使用此图像在xml文件中查看:

<com.example.ProportionalImageView
        android:layout_width="matchParent"
        android:layout_height="wrapContent"
        android:adjustViewBounds="true"
        android:scaleType="fitXY"
        android:src="@mipmap/img" />

在这里,用您的包名称替换 com.example。希望对您有帮助