是否可以设计Android版面(LinearLayout
或RelativeLayout
)而无需指定任何dp
,px
或任何其他单元?也许使用百分比? layout_weight
是一种选择。但是利润率和填充量仍然如此?我们可以完全避免布局中的幻数吗?
答案 0 :(得分:5)
Percent Support Library有PercentFrameLayout
和PercentRelativeLayout
,您可以在其中指定任何布局尺寸(即尺寸,位置和边距),而不是绝对值:
<android.support.percent.PercentRelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
app:layout_widthPercent="50%"
app:layout_heightPercent="50%"
app:layout_marginTopPercent="25%"
app:layout_marginLeftPercent="25%"/>
</android.support.percent.PercentRelativeLayout>
答案 1 :(得分:3)
您始终可以定义并使用dimension
变量来删除布局中的幻数,即:
<ImageView
layout_width="@dimen/large_photo_size"
layout_height="@dimen/large_photo_size"
/>
在@dimen/large_photo_size
资源文件中定义dimens.xml
,即:
<resources>
<dimen name="large_photo_size">25dp</dimen>
</resources>
另一种选择是将宽度和高度设置提取为样式,即:
<style name="Thumbnail">
<item name="android:layout_width">25dp</item>
<item name="android:layout_height">25dp</item>
</style>
并使用它,即<ImageView style="@style/PopupMenu" ... />
使用themes,您可以全局应用某些样式。