相对于屏幕尺寸拉伸图像

发布于 2025-01-06 10:13:03 字数 297 浏览 1 评论 0原文

我的布局有六个按钮。它们的尺寸均为 72x72dip,因此它们在小屏幕上显得较大,反之亦然。

我该如何解决这个问题?我希望按钮的大小相对相同(例如屏幕宽度的 10%),但我不知道该怎么做。

这是我的布局的外观:

在此处输入图像描述

可以找到布局的源代码 此处

I have a layout that features six buttons. All of them have the size of 72x72dip, so they appear to be larger on small screens and vice versa.

How can I tackle this problem? I want the buttons to be relatively the same size (eg 10% of the screen's width), but I don't know how to do it.

This is how my layout looks:

enter image description here

The layout's sourcecode can be found here.

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

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

发布评论

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

评论(3

坏尐絯 2025-01-13 10:13:03

1 - 您是否将所有“图像视图”修复为layout_width & 72dip 的高度?
2 - 通常 72dip 在每个屏幕尺寸上都是相同的...但是您仍然可以拥有 3(或 4,如果您支持 XHDPI)图像分辨率...

2 - 为您添加 4 个不同的可绘制对象:

2.1 可绘制

2.2 可绘制-ldpi

2.3drawable-mdpi

2.4drawable-hdpi

请考虑以下图像比例:
LDPI为3
mdpi 为 4
hdpi 为 6

因此,请确保首先制作 HDPI 图像,以便您可以使用比例 1.5 和 2 调整其他图像的大小(例如,对于 LDPI,只需除以 2)。

3.顺便问一下,为什么这一切都是你自己做的?看来您使用的是 android 4.0,为什么不直接使用 Android 中的新“DashBoard”类呢?

1 - Did you fix all you 'image views' to layout_width & height of 72dip ?
2 - Normally 72dip is the same thing on every screen size... But you still can have 3(or 4 if you support XHDPI) resolution of your images...

2 - Add 4 différent fonder for you Drawable :

2.1 drawable

2.2 drawable-ldpi

2.3 drawable-mdpi

2.4 drawable-hdpi

Consider the following ratio for your images :
ldpi is 3
mdpi is 4
hdpi is 6

So make sure to make HDPI images first, so you can isealy resize other images applying ration 1.5 and 2 (just divide by 2 for LDPI for example).

3.By the way, why did you just did it all by yourself ? Seems you are on android 4.0, why don't you just use the new "DashBoard" class from Android ?

青衫负雪 2025-01-13 10:13:03

我通常通过将宽度和高度设置为 wrap_content 然后调整 ImageButton 小部件上的 layout_weight 来实现此目的,以便每个按钮占用相同的空间量。我通常会使用 scaleType="center_inside" 来使它们很好地对齐。然后根据需要在 TableView 的边缘周围添加边距。

I usually do this by setting the width and height to wrap_content and then tweaking the layout_weight on the ImageButton widgets so that each button takes up the same amount of space. I usually do scaleType="center_inside" to make them line up nicely. Then pad around the edges of the TableView with margins as necessary.

南烟 2025-01-13 10:13:03

观察:

一些快速 你不需要TableLayout,只需使用LinearLayout

b。您不需要单独的 ImageView 和 TextView,您可以使用

android:drawableTop="@drawable/"

c 来使用 Button 和图像。切勿在任何视图的宽度/高度中使用绝对值,因此请使用wrap_content。

示例布局应该是这样的:

<LinearLayout
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:orientation="vertical">

 <!-- Row 1 -->
 <LinearLayout
    android:layout_height="0dp"
    android:layout_width="fill_parent"
    android:layout_weight="1.0"
    android:orientation="horizontal">

 <Button
    android:layout_height="wrap_content"
    android:layout_width="0"
    android:layout_weight="1.0"
    android:text="Preferences"
    android:drawableTop="@drawable/Preferences" />

 <Button
    android:layout_height="wrap_content"
    android:layout_width="0"
    android:layout_weight="1.0"
    android:text="Preferences"
    android:drawableTop="@drawable/Preferences" />

 </LinearLayout>

  .
  .
  .   
</LinearLayout>


</LinearLayout>

Few quick observations:

a. You do not need TableLayout, just use LinearLayout

b. You do not need separate ImageView and TextView, you can use Button and image to it using

android:drawableTop="@drawable/"

c. Never use absolute values in width/height of any views, so use wrap_content.

Sample Layout should be like this:

<LinearLayout
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:orientation="vertical">

 <!-- Row 1 -->
 <LinearLayout
    android:layout_height="0dp"
    android:layout_width="fill_parent"
    android:layout_weight="1.0"
    android:orientation="horizontal">

 <Button
    android:layout_height="wrap_content"
    android:layout_width="0"
    android:layout_weight="1.0"
    android:text="Preferences"
    android:drawableTop="@drawable/Preferences" />

 <Button
    android:layout_height="wrap_content"
    android:layout_width="0"
    android:layout_weight="1.0"
    android:text="Preferences"
    android:drawableTop="@drawable/Preferences" />

 </LinearLayout>

  .
  .
  .   
</LinearLayout>


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