当前位置: 首页 > 知识库问答 >
问题:

用于ldpi mdpi hdpi和xhdpi的缩放图像

公良向阳
2023-03-14

我有5个按钮,背景按钮图像尺寸267x63。我复制了ldpi mdpi hdpi xhdpi中分辨率为267x63的所有背景按钮。当我尝试运行我的应用程序时,按钮在2.7英寸QWGA中很大,但在平板电脑模式下很小。

在ldpi mdpi hdpi和xhdpi中,我的背景_按钮的最佳解决方案是什么?

XML按钮:

    <Button  
    android:id="@+id/button5"
    android:layout_width="230dp"
    android:layout_height="60dp"
    android:layout_alignLeft="@+id/textView1"
    android:layout_below="@+id/textView1"
    android:background="@drawable/a"
    android:textColor="#FFFFFF"
    android:textStyle="bold" />

如果我缩放背景按钮并设置:

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

我的按钮很严格...你能帮我吗?

共有3个答案

太叔经赋
2023-03-14

我也有支持多种屏幕大小的应用程序,krossovochkin提供的链接是最好的。然而,在我的应用程序中,我使用了以下宽度大小,看起来效果不错,分辨率非常适合我的需要:

ldpi-75px(120dpi分辨率)
mdpi-100px(160dpi分辨率)
hdpi-150px(240dpi分辨率)
xhdpi-200px(320dpi分辨率)

但是这些都取决于你将要在按钮上显示的内容。注意:确保你的按钮按比例缩小,而不是按比例增大!

或者查看此设备显示

关翰
2023-03-14

您可以使用以下代码根据屏幕分辨率进行显示-

Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).
                   getDefaultDisplay();
int screenWidth = display.getWidth();
int screenHeight = display.getHeight();

调整图像大小的代码---

private Bitmap resizeImage( final Bitmap image) {
        Bitmap resizedImage = null;
        if(image != null)
        {
        int maxHeight = 80; //actual image height coming from internet
        int maxWidth = 150; //actual image width coming from internet

        int imageHeight = image.getHeight();
        if ( imageHeight > maxHeight )
        imageHeight = maxHeight;
        int imageWidth = (imageHeight*image.getWidth()) // image.getHeight();
        if ( imageWidth > maxWidth ) {
        imageWidth = maxWidth;
        imageHeight = (imageWidth*image.getHeight()) // image.getWidth();
        }
        resizedImage = Bitmap.createScaledBitmap( 
                       image, imageWidth, imageHeight, true);
        }
        return resizedImage;
        }
隗驰
2023-03-14

实际上,您不应该将相同的图像放置到所有文件夹-ldpi、-mdpi、-hdpi。

让我们想象一下,您希望支持xxhdpi设备。您为xxhdpi(例如1Mb)创建图像并将其放入所有文件夹。你会在ldpi设备上得到什么?图像将被缩放。屏幕上的图像质量将非常糟糕。还有一件事:如果你想在一个屏幕上同时显示100个图像,每个图像的大小为2-5Mb,并且你为xxhdpi设备创建了所有这些图像,那么你就可以在ldpi设备上消除内存错误。

因此,最好的做法是不要将相同的图像放在所有文件夹中。如果您有一些分辨率无关的图像,那么您可以将它们放入可绘制文件夹(无后缀)。但不应将相同的图像放入ldpi和xxhdpi文件夹。

所以调整大小的答案很糟糕。

看看这篇文章

在“可供选择的提款权”一段中。在这张照片上

您可以看到,对于xhdpi设备,您应该拥有比mdpi大2倍的图像。等等。

希望能有帮助

 类似资料:
  • 实际上,我正在用JavaFX编写游戏《暗黑破坏神》的“简单”版本。 目前,屏幕尺寸为绝对800x600,一切正常。现在我们的团队希望在每个桌面上使用全屏。 我的问题是:我们正在使用绝对尺寸为25x25的墙、地板等图像。如果我们想在全屏模式下工作,我们需要扩展它们。 但据我所知,您只能缩放ImageView或BufferedImage。当然,我们正在重复使用图像。例如,一个墙壁纹理在窗格上出现了20

  • 问题内容: 我需要实现变焦为包含在。我已经通过覆盖方法和调用来成功进行缩放。 这是不正常:对的和的规模如预期,但一定会得到的和这样的寄存器在预分频的位置。我能做什么?感谢您的阅读。 问题答案: 显示了如何使用明确的转化方法扩展鼠标坐标:,,和。)。

  • 图表缩放指的是局部放大或缩小图表,可以更方便的查看图表数据。 Highcharts支持两种方式缩放,缩放(zoom)和平移(panning), 并且是完美支持移动端手势操作的 。 一、缩放(zoom) 只需要简单设置 zoomType 即可实现图表缩放,例如: $("#container").highcharts({ chart: { zoomType: 'x' } // ..

  • 我有一个背景为我的应用程序在分辨率720x1280像素,1080x1920像素和1440x2560像素。 我应该将每个背景放在哪些文件夹(mdpi、hdpi、xhdpi和xxhdpi)中?

  • 从相机camera或相册获取照片,并保存在沙盒中,显示在应用程序内,并可实现点击图片放大预览,缩小功能,带动画效果。 [Code4App.com]