Android:调整所有屏幕的图像大小

发布于 2024-12-26 05:20:32 字数 167 浏览 2 评论 0原文

早上好。我有一个与所有显示宽度一样大的图像。我希望根据所有屏幕尺寸和密度调整该图像的大小。我已将各种尺寸的图像放入drawable-ldpi、mdpi、hdpi和xhdpi目录中,但对于相同的显示器,例如Galaxy Note或Galay Nexus,图像不占据所有屏幕宽度!为什么 ?我该怎么办?

谢谢

Good morning. I have an image that is large as all display width. I want that this image is resized for all screen dimension and density. I have put into directory drawable-ldpi,mdpi,hdpi and xhdpi the image in various dimension, but for same display, such as the Galaxy Note or the Galay Nexus, the image don't take all screen width ! Why ? How can I do ?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

逐鹿 2025-01-02 05:20:32

最简单的方法并不总是最好的,所以我会考虑其他选择。
但是,如果您为 XHDPI 设备创建图像并将其放入 xhdpi 文件夹中。
低于 xhdpi 的设备会自动为您缩小图像。

看看这里

希望这有帮助

The easiest way not always the best, so I would consider other options.
But if you create an image for the XHDPI devices and put it in the xhdpi folder.
Devices that are lower then xhdpi will automaticly scale the image down for you.

take look here

hope this helps

饭团 2025-01-02 05:20:32

// 使用

android:scaleType="fitXY"

normal hdpi is 480x 800 ~240dpi

您的

samsung note is 800 x 1280 pixels, 5.3 inches (~285 ppi pixel density)
galaxy nexus is 720 x 1280 pixels, 4.65 inches (~316 ppi pixel density)

或使用 Displaymetrics 获取屏幕密度并提供不同密度的各种图像。

// use

android:scaleType="fitXY"

normal hdpi is 480x 800 ~240dpi

but your

samsung note is 800 x 1280 pixels, 5.3 inches (~285 ppi pixel density)
galaxy nexus is 720 x 1280 pixels, 4.65 inches (~316 ppi pixel density)

or get the screen density using Displaymetrics and supply various image for different density.

坚持沉默 2025-01-02 05:20:32

你必须在你的manifest.XML中创建一个图像。然后,对于属性,你只需要设置

android:layout_width="wrap_content"
android:layout_height="wrap_content"

图片的宽度和高度即可。在这里,它将在整个屏幕上显示图像。

you have to create an image in your manifest.XML. Then, for the property, you just have to put

android:layout_width="wrap_content"
android:layout_height="wrap_content"

To set the width and heignt of the picture. Here, it will show the image on the whole screen.

恰似旧人归 2025-01-02 05:20:32
public class ScreenWidthImgView extends ImageView {

    public ScreenWidthImgView(Context context) {
        super(context);
        setScaleType(ScaleType.FIT_XY);
    }

    public ScreenWidthImgView(Context context, AttributeSet attrs) {
        super(context, attrs);
        setScaleType(ScaleType.FIT_XY);
    }

    public ScreenWidthImgView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        setScaleType(ScaleType.FIT_XY);
    }

    @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        Drawable d = getDrawable();
        int width = MeasureSpec.getSize(widthMeasureSpec);
        int height = width * d.getIntrinsicHeight() / d.getIntrinsicWidth();
        setMeasuredDimension(width, height);
    }
}

将此 ImageViewlayout_width="match_parent"layout_height="wrap_content" 结合使用将为您提供始终占据整个宽度的图像屏幕并均匀缩放图像。

public class ScreenWidthImgView extends ImageView {

    public ScreenWidthImgView(Context context) {
        super(context);
        setScaleType(ScaleType.FIT_XY);
    }

    public ScreenWidthImgView(Context context, AttributeSet attrs) {
        super(context, attrs);
        setScaleType(ScaleType.FIT_XY);
    }

    public ScreenWidthImgView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        setScaleType(ScaleType.FIT_XY);
    }

    @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        Drawable d = getDrawable();
        int width = MeasureSpec.getSize(widthMeasureSpec);
        int height = width * d.getIntrinsicHeight() / d.getIntrinsicWidth();
        setMeasuredDimension(width, height);
    }
}

Using this ImageView with layout_width="match_parent" and layout_height="wrap_content" will give you an image that always takes up the full width of the screen and scales the image uniformly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文