如何使用 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 图像宽度是可见的。将RelativeLayout
的layout\_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应用程序中,根据设备屏幕大小自行调整大小?