如何使用 XML 根据图像大小调整 Android 组件的大小

Posted

技术标签:

【中文标题】如何使用 XML 根据图像大小调整 Android 组件的大小【英文标题】:How to size Android components according to image size using XML 【发布时间】:2010-10-06 14:51:25 【问题描述】:

我使用 XML 布局创建器在 android 中创建了一个自定义图标栏,使用 LinearLayout 中的 RadioGroup(XML 包含在下面)。 RadioGroup 中的每个 RadioButton 都有一个自定义可绘制对象(具有选中和未选中状态)作为其android:button 属性。

线性布局本身位于RelativeLayout 内,因此它可以出现在屏幕上的任意位置(在本例中作为侧边栏)。

drawables 是 55 像素宽,所有这些视图的 android:layout\_width 属性是 wrap\_content

当我使这个组件可见时,对齐到屏幕的左下角,只有大约四分之三的 RadioButton 图像宽度是可见的。将RelativeLayoutlayout\_width 设置为fill\_parent 可以纠正此问题并导致出现完整按钮。

然而,这意味着按钮组在整个屏幕宽度上消耗点击事件。

如何使整个按钮出现,并且只有按钮区域响应点击?硬编码drawable的宽度并不是一个特别理想的解决方案。

<RelativeLayout android:id="@+id/RelativeLayout01" android:layout_ android:layout_>
    <LinearLayout android:id="@+id/LinearLayout02" android:layout_ android:layout_ android:orientation="vertical" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_below="@+id/LinearLayout01" android:visibility="invisible">
        <RadioGroup android:id="@+id/RadioGroup01" android:layout_ android:checkedButton="@+id/RB01" android:layout_>
            <RadioButton android:id="@+id/RB01" android:layout_ android:layout_ android:button="@drawable/DR01"/>
            <RadioButton android:id="@+id/RB02" android:layout_ android:layout_ android:button="@drawable/DR02"/>
            <RadioButton android:id="@+id/RB03" android:layout_ android:layout_ android:button="@drawable/DR03"/>
            <RadioButton android:id="@+id/RB04" android:layout_ android:layout_ android:button="@drawable/DR04"/>
        </RadioGroup>
    </LinearLayout>
    </RelativeLayout>

【问题讨论】:

【参考方案1】:

以 dp(密度独立像素)为单位设置 LinearLayout、RadioGroup 或 RadioButton 的宽度可能对您有用。根据你上面所说的,我认为它必须是布局的宽度。尺寸是“硬编码”的,但它们会随着您的屏幕大小而缩放。

所以 xml 可能看起来像:

android:layout_

dps的官方文档是here

【讨论】:

为什么是 55 dp?所有宽度为 220dp 的 android ?【参考方案2】:

我无法想象为什么另一个答案有 6 个赞成票,这是完全错误的

尺寸是“硬编码”的,但它们会随着您的屏幕大小而缩放。

它们会根据您屏幕的密度进行缩放。我非常希望我们可以使用 XML 中的百分比,而不必编写它们。

【讨论】:

以上是关于如何使用 XML 根据图像大小调整 Android 组件的大小的主要内容,如果未能解决你的问题,请参考以下文章

根据屏幕尺寸调整图像大小?

如何将ImageView放在Xamarin.Android应用程序中,根据设备屏幕大小自行调整大小?

响应式网页设计:“如何使用 CSS 根据浏览器窗口大小调整背景图像的大小”?

上传所有移动设备时如何调整图像大小?

Android:键盘弹出时背景图像调整大小

如何根据正在使用的 iphone 按比例调整图像大小