【问题标题】:Scaling ImageButtons for various screen sizes为各种屏幕尺寸缩放 ImageButtons
【发布时间】:2016-07-02 14:01:21
【问题描述】:

对于my app(运行 Android 2.1 及更高版本), 我想知道如何根据 dpi 为各种屏幕尺寸(在这种情况下为虚拟模拟器)缩放按钮,因为我缩放的背景图像似乎“未像素化”非常好......我缩放了我的按钮(“得到它”如图所示下面)相应地说,一个 lpdi 和一个 xxhdpi 屏幕,我得到以下结果:

对于 Nexus 5 虚拟仿真器 (xxhdpi),按钮应该是 150X34 像素,似乎导航到 ldpi 资源控制器:

放大 QVGA (ldpi),按钮为 57X13 像素:

综上所述,考虑到我在可绘制文件夹(xhdpi、hdpi、mdpi 和 ldpi)中实现了缩放按钮图像,我是否需要缩小布局,并在可绘制资源文件中调用它,然后将drawable资源文件设置为ImageButton的背景图?这是我的按钮的 XML 顺便说一句:

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:id="@+id/exitBtn"
    android:layout_marginBottom="57dp"
    android:src="@drawable/popup_btn"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:scaleType="centerCrop"
    android:background="@android:color/transparent" />

P.S. 缩放可绘制文件夹 xhdpi 也是 xxhdpi 屏幕的默认位置吗? xxxhdpi 及以上怎么样?

【问题讨论】:

    标签: java android scale dpi


    【解决方案1】:

    首先,您必须更改 Button 以占据整个屏幕:

    <Button
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/exitBtn"
    android:layout_marginBottom="52dp" <-- You may keep the margin if you like
    android:background="@drawable/popup_btn"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true" />
    

    接下来,您必须针对您将支持的不同密度添加不同的资源:mdpi、xhpdi、xxhdpi 等。请确保每个分辨率都合适,避免使用相同的图像,太大的文件会占用内存和处理能力,分辨率太小的文件会显得像素化。

    编辑:有关支持不同设备和屏幕密度的更多信息: http://developer.android.com/guide/practices/screens_support.html

    【讨论】:

    【解决方案2】:

    为了使您的布局与不同的屏幕尺寸兼容,您应该使用 res/ 目录下的 dimens 来实现布局兼容性,例如,您可以为不同的屏幕尺寸定义不同的尺寸,另请参阅 @ 987654321@和Supporting Multiple Screens

    【讨论】:

      【解决方案3】:

      通过实例化它来创建显示指标。现在从显示指标检索整个根视图的宽度和高度

      完成后,在您的活动的 Oncreate 中实现 globallayoutchangelistener 并将您的缩放代码放入侦听器中。

      想法是先计算设备密度,然后根据globallayoutchangelistener中的密度缩放按钮

      让我知道它是否有效。

      【讨论】:

      猜你喜欢
      • 2016-07-02
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 2015-12-06
      • 1970-01-01
      • 1970-01-01
      • 2018-10-14
      • 1970-01-01
      相关资源
      最近更新 更多